java.net.ConnectException:无法通过 Spring Bot 中的 Selenium Java 使用 ChromeDriver Chrome 连接到 localhost/0:0:0:0:0:0:0:1:1731

Har*_*iya 1 java selenium google-chrome selenium-chromedriver spring-boot

我有使用 Spring Boot 开发的基于硒的 Web 应用程序。该服务器位于谷歌云服务器的虚拟机实例。

请在下面找到有关版本的详细信息。

Spring Boot - 2.0.0.RELEASE

硒 - 3.9.1

Linux - Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux

Chrome 驱动程序 - 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881)

谷歌浏览器 - 70.0.3538.110

JDK - 1.8.0_232

从过去几天开始,我面临一个奇怪的问题,应用程序在营业时间开始时运行良好,但几个小时后变得不稳定,整个应用程序停止工作,甚至用户无法登录。在为此问题挖掘了更多信息后,我从服务器日志中发现了以下错误。我必须重新启动 VM 实例才能修复它。

在此处输入图片说明 .

重新启动后,它可以正常工作几个小时,然后我们再次面临同样的问题。

此外,我注意到在发送电子邮件时我们面临以下问题,该问题在几分钟前可以正常工作。 在此处输入图片说明

我还验证了服务器资源使用情况,但没有发现任何可疑活动。我在谷歌上搜索了这个问题,但大多数解决方案都是针对第一次运行时遇到的问题提供的。但是,就我而言,它可以正常工作几个小时,然后开始出现此问题。

请帮助我了解此问题的问题和根本原因。如果您也可以提出解决方案,那就更好了。

提前致谢。

Deb*_*anB 5

这个错误信息...

java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:1731
Run Code Online (Sandbox Code Playgroud)

...暗示ChromeDriver无法启动/生成新的浏览上下文,Chrome 浏览器会话。

您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:

支持Chrome v62-64

支持Chrome v69-71

  • 您的Selenium Client版本是3.9.1,比它早了将近2年。

因此,Selenium Client v3.9.1ChromeDriver v2.35Chrome Browser v70.0之间存在明显的不匹配


解决方案

确保这件事:

  • Selenium升级到当前级别Version 3.141.59
  • ChromeDriver更新到当前ChromeDriver v79.0.3945.36级别。
  • Chrome已更新到当前的Chrome 版本 79.0级别。(根据ChromeDriver v79.0 发行说明
  • 清理你的项目工作,通过你的IDE重建仅需要依赖你的项目。
  • 如果您的基本Web Client版本太旧,请通过Revo Uninstaller卸载它并安装最新的 GA 和发布版本的Web Client
  • @Test非 root用户身份执行。