chrome无法启动:在macos上的docker容器中异常退出



在我的Mac上,我用FROM selenium/standalone chrome debug:3.4.0-chrome在Dockerfile中构建了图像。

当我在容器中运行我的应用程序时,我得到了:

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 4.19.76-linuxkit x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.13 seconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'a45e0250acbf', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.19.76-linuxkit', java.version: '1.8.0_121'
Driver info: driver.version: ChromeDriver

在Jenkins中构建的镜像使用相同的Dockerfile运行相同的应用程序,它没有问题。二者均为2.29.461571。

我已经设置了远程调试,想在推送到Jenkins/linux之前在我的macos上进行调试,但被这个chrome阻止无法启动:在macos上的容器中异常退出。

为什么这种情况发生在我的macos上,而不是在Jenkins/Linux中,以及如何解决?

此错误消息。。。

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 4.19.76-linuxkit x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.13 seconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'a45e0250acbf', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.19.76-linuxkit', java.version: '1.8.0_121'
Driver info: driver.version: ChromeDriver

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

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

  • 您正在使用chromedriver=2.29
  • chromedriver=2.29的发行说明明确提到以下内容:

支持Chrome v56-58

  • 假设您使用的是最新的chrome=85.0
  • ChromeDriver v85.0的发行说明明确提到以下内容:

支持Chrome版本85

因此ChromeDriverv2.40Chrome浏览器v85.0之间存在明显的不匹配


解决方案

确保:

  • JDK升级到当前级别JDK8u252
  • Selenium已升级到当前发布的3.141.59版本
  • ChromeDriver更新到当前ChromeDriver v85.0级别
  • Chrome更新到当前Chrome版本85.0级别。(根据ChromeDriver v85.0发行说明(
  • 如果您的基本Web客户端版本太旧,请将其卸载并安装最新的GA和发布的Web客户端版本
  • 通过IDE清理您的项目工作区,并仅使用所需的依赖项重建项目
  • 进行系统重新启动
  • 非root用户身份执行您的@Test
  • 总是调用CCD_ 3方法中的CCD_;优雅地销毁WebDriverWeb客户端实例

最新更新