Chrome Протокол DevTools addScriptToEvaluateOnNewDocument с использованием ruby chrome_remote - PullRequest
0 голосов
/ 17 января 2020

Поэтому я пытаюсь внедрить скрипт для запуска на любой странице, используя addScriptToEvaluateOnNewDocument на chrome 79, но, похоже, он не работает.

Я использую гем ruby chrome_remote, который дает довольно простой c доступ к CDP.

Вот пример ruby:

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, оно не определено.

Есть ли способ проверить, была ли команда отправлена ​​в браузер, например, журнал в браузере, в котором она была получена? Любой способ увидеть, какие сценарии были введены? Почему каждый вызов всегда возвращает ScriptIdentifier из 1, что кажется проблематичным c?

У кого-нибудь работает подобный пример?

1 Ответ

1 голос
/ 22 февраля 2020

Вы должны сначала вызвать "page.enable".

...