一尘不染

我如何重新连接使用selenium的webdriver打开的浏览器?

selenium

由于某些未知原因,我的浏览器非常缓慢地打开了远程服务器的测试页。因此,我在考虑是否可以在退出脚本后重新连接到浏览器,但不执行webdriver.quit()此操作将使浏览器保持打开状态。这可能是HOOK或Webdriver句柄。我查找了seleniumAPI文档,但未找到任何功能。我正在使用Chrome
62,x64,windows 7,selenium3.8.0。如果问题能够解决,我将不胜感激。


阅读 627

收藏
2020-06-26

共1个答案

一尘不染

,退出脚本后,您将无法重新连接到上一个 Web浏览会话 。即使你能提取Session IDCookies和其他会议从以前的属性
浏览器上下文 你仍然无法通过这些属性作为 _HOOK_到的webdriver。

一种更干净的方法是调用webdriver.quit(),然后跨越一个新的 浏览上下文


深潜

有关将 WebDriver 重新连接到现有的正在运行的 浏览上下文 的讨论和尝试很多。在“
允许webdriver附加到正在运行的浏览器中” 的讨论中, _ Simon Stewart_ [Creator WebDriver]明确提到:

  • 重新连接到现有的 浏览上下文 是浏览器特定的功能,因此无法以通用方式实现。
  • 使用internet-explorer,可以遍历OS中打开的窗口并找到要附加的正确IE进程。
  • firefoxgoogle-chrome需要以特定的模式和配置启动,这实际上意味着仅在技术上不可能附加到正在运行的实例。

tl; 博士

webdriver.firefox.useExisting未实现

2020-06-26