如何在没有 Puppeteer 的情况下通过 DevTools 协议模拟 Chrome window 中的点击?

How to simulate clicks in a Chrome window via the DevTools Protocol without Puppeteer?

我最近使用 Puppeteer 和 Electron 制作了一个 Chrome 自动答题器,但这创建了一个 40 兆字节的可执行文件,这对于一个简单的自动答题器来说似乎太过分了。

我花了几个小时试图弄清楚 Puppeteer 到底做了什么来发送点击,但我得到的最接近的是 this link.

然而,却是JavaScript。我的 Puppeteer 自动答题器控制一个外部的、预装的 chrome.exe。那么它是否发送 JavaScript 字符串以供浏览器评估?

我想在没有 Node、Puppeteer 或 Electron 的情况下重做 my auto-clicker,作为独立的可执行文件而不是 Chrome 扩展。

我可能会使用 C++ 或 Pascal,但我不一定要代码(尽管那会很好),但更多的是如何与 API Puppeteer 正在交谈的对象进行通信。

我认为您正在寻找 Chrome Devtools API。

as a standalone executable as opposed to a Chrome extension

我不确定你在这里的确切意思,如果你的意思是没有 chrome 的依赖性,那么你只是在创建一个自动点击器并希望 chrome window 和 URL 是正确的。但这与 chrome devtools 无关。

据我所知,puppiteer 附带的 chrome.exe 注入了 puppiteer 或 selenium 的扩展名(但不要引用我的话)。

https://chromedevtools.github.io/devtools-protocol/

使用 API,我建议使用 inspectedWindow,使用 eval 执行一些 JS。

chrome.devtools.inspectedWindow.eval(
          "document.getElementById('someEl').click();",
           function(eventRes, isException) {
             // callback ?
           });

虽然从头开始,但首先创建一个基本扩展.. https://developer.chrome.com/extensions/getstarted

从那里您可以使用启动命令参数将您的扩展程序添加到独立 chrome.exe。

Path\To\Google\Chrome\Application\chrome.exe" --load-extension="C:\PAthOfExtension"

应该会让你继续。

更多选项

或者或者更确切地说是一些进一步的选择.. 将包括节点和 puppiteer 的当前自动点击器应用程序打包到 electron 应用程序中,该应用程序可以 运行 作为独立的 exe..

无需第 3 方直接访问 CDP: https://github.com/aslushnikov/getting-started-with-cdp/blob/master/README.md