在更改或创建执行上下文时收到通知

时间:2017-05-22 16:05:34

标签: selenium selenium-chromedriver chromium

我通过selenium webdriver(在chromedriver上)向网站注入大量的javascript代码。

虽然我使用的方法大部分时间都有效,但是当加载iframe或网页的javascript代码重新加载页面时,它会失败。

我可以从chromedriver的日志中追踪问题。 例如:

[6.203][DEBUG]: DEVTOOLS EVENT Runtime.executionContextDestroyed {
   "executionContextId": 1
}
[6.203][DEBUG]: DEVTOOLS EVENT Runtime.executionContextsCleared {

}
[6.203][DEBUG]: DEVTOOLS EVENT Runtime.executionContextCreated {
   "context": {
      "auxData": {
         "frameId": "274.1",
         "isDefault": true
      },
      "id": 5,
      "name": "",
      "origin": "https://<some url>"
   }
}

当我看到executionContextDestroyed我知道这一点时,很可能我的注入脚本也被破坏了。我尝试了很多选项,如switch_to.default_content()switch_to.parent_frame,但它们没有帮助,因为在重新加载但重新注入脚本时无所事事。

我的问题是,有没有办法挂钩executionContextCreated事件,所以我可以一次又一次地将我的脚本/函数注入上下文。

0 个答案:

没有答案