0

因此,我试图注入一个脚本以在使用addScriptToEvaluateOnNewDocumentchrome 79 的任何页面上运行,但它似乎不起作用。

我正在使用 ruby​​ gem chrome_remote,它提供了对 CDP 的基本访问。

这是一个示例红宝石:

scpt =<<EOF
    window.THIS_WAS_SET = 1
EOF

ChromeRemote.client.send_cmd 'Page.addScriptToEvaluateOnNewDocument',{source: scpt}
ChromeRemote.client.send_cmd "Page.navigate", url: "http://localhost:4567/test"

然后我开始使用 chrome--remote-debugging-port=9222

Page.addScriptToEvaluateOnNewDocument始终返回{"identifier"=>"1"}(即使我多次调用它,比如使用不同的脚本)。

当我在 Chrome 中打开的选项卡上打开控制台时(它可以工作,所以我知道 CDP 通常在工作),并检查 的值window.THIS_WAS_SET,它是未定义的。

有什么方法可以验证命令是否发送到浏览器,例如在浏览器中接收到的日志?有什么方法可以查看注入了哪些脚本?为什么每次调用总是返回ScriptIdentifier1,这似乎有问题?

有人有类似的例子吗?

4

1 回答 1

5

你应该先调用“page.enable”。

于 2020-02-22T08:48:29.570 回答