如何修复 [1573451709.039][警告]:连接到 Chrome 超时,正在重试...使用 Chrome 版本 78 和 Chrome 驱动程序版本 78.0.3904.70 时

How to fix [1573451709.039][WARNING]: Timed out connecting to Chrome, retrying... while using chrome version 78 and chrome driver version 78.0.3904.70

提问人:Neha Gupta 提问时间:11/11/2019 最后编辑:undetected SeleniumNeha Gupta 更新时间:11/18/2022 访问量:18163

问:

我的 Chrome 浏览器已更新到版本 78,当我尝试执行任何自动化代码时,它显示错误

Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1573451703.668][WARNING]: Timed out connecting to Chrome, retrying...
Nov 11, 2019 11:25:05 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
[1573451709.039][WARNING]: Timed out connecting to Chrome, retrying...

我该如何解决?

java selenium selenium-chromedriver chrome-web-driver

评论

0赞 Raj 11/11/2019
请补充更多信息。
0赞 Naveen 11/11/2019
如果您正在运行任何 Chrome 或 chrome 驱动程序实例,请将其关闭,然后重试。这也是在 AWS/Citrix 机器中吗?

答:

2赞 undetected Selenium 11/11/2019 #1

此错误消息...

Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1573451703.668][WARNING]: Timed out connecting to Chrome, retrying...
Nov 11, 2019 11:25:05 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
[1573451709.039][WARNING]: Timed out connecting to Chrome, retrying...

...意味着 ChromeDriver 无法启动/生成新的 WebBrowser,即 Chrome 浏览器会话。


分析

第一条日志消息:

Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.

是使用 ChromeDriver 时启动日志的一部分,本质上是信息性的。

您可以在如何保护 chromedriver 使用的端口中找到详细的讨论?


以下日志消息:

[1573451703.668][WARNING]: Timed out connecting to Chrome, retrying...

表示您正在使用的二进制文件版本之间存在一些不兼容


溶液

确保:

  • JDK 已升级到当前级别 JDK 8u222
  • Selenium 已升级到当前级别 版本 3.141.59
  • ChromeDriver 已更新到当前的 ChromeDriver v78.0 级别。
  • Chrome 已更新到当前的 Chrome 版本 78.0 级别。(根据 ChromeDriver v78.0 发行说明)
  • 通过 IDE 清理项目工作区,然后仅使用所需的依赖项重新生成项目。
  • (仅限 WindowsOS)使用 CCleaner 工具清除测试套件执行前后的所有操作系统杂务。
  • (仅限 LinuxOS)在执行测试套件之前和之后释放并释放 Ubuntu/Linux Mint 中未使用/缓存的内存
  • 如果基本 Web 客户端版本太旧,请将其卸载并安装最新的 GA 和已发布的 Web 客户端版本。
  • 重新启动系统
  • 非 root 用户身份执行。@Test
  • 始终在方法内调用以优雅地关闭和销毁 WebDriverWeb 客户端实例。driver.quit()tearDown(){}
0赞 Julio 11/12/2019 #2

我必须更新到 chrome 79 的开发版本和 chromedriver 的最新开发版本才能使其正常工作。虽然我遇到了这个版本的其他问题,所以我不知道这是否是一个好的解决方案。

评论

0赞 undetected Selenium 11/19/2019
您的答案与已经公布的其他答案有何不同?
2赞 nimodka 11/18/2022 #3

我已经通过将我的代码从以下位置更改来修复此超时/连接重置问题:

public void AfterScenario(Scenario sc) {    
        driver.close();
        driver.quit();
        driver = null;
    }

自:

public void AfterScenario(Scenario sc) {
        driver.quit();
        driver = null;
    }

所以基本上我删除了driver.close(),这解决了我的问题。我不知道为什么会这样,但专家可以解释更多......