当前位置: 首页 > 知识库问答 >
问题:

org.openqa.selenium.WebDriverException:未知错误:Chrome无法启动:崩溃(无头chrome)

欧阳何平
2023-03-14

我在centos上运行无头chrome,无头chrome版本2.38和google-chrome-稳定版本67.0

System.setProperty("webdriver.chrome.driver", driverPath);
    log.warn("chrome driver path is : {}", driverPath);
    List<String> options = proxyConfig.getChromeOptions();
    ChromeOptions chromeOptions = new ChromeOptions();
      chromeOptions.addArguments(options);
    Map<String, String> capabilites = proxyConfig.getCapabilities();
    if(MapUtils.isNotEmpty(capabilites)) {
      for (Map.Entry<String, String> entry : capabilites.entrySet()) {
        chromeOptions.setCapability(entry.getKey(), entry.getValue());
      }
    }
    // proxy configuration
    /*Proxy proxy = new Proxy();
    proxy.setProxyType(Proxy.ProxyType.MANUAL);
    proxy.setHttpProxy(proxyConfig.getProxyHost());
    proxy.setSocksUsername(proxyConfig.getProxyUsername());
    proxy.setSocksPassword(proxyConfig.getProxyPassword());
    chromeOptions.setCapability(CapabilityType.PROXY, proxy);*/
    log.warn("chorme driver created ");
    return new ChromeDriver(chromeOptions);

chrome选项:

 "--headless", 
        "----disable-gpu", 
        "--ignore-certificate-errors", 
        "window-size=1920,1080"

最后一行给出以下给定错误消息:

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed
  (Driver info: chromedriver=2.38.552522 (437e6fbedfa8762dec75e2c5b3ddb86763dc9dcb),platform=Linux 4.9.77blibli.com x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.11 seconds
Build info: version: ‘3.6.0’, revision: ‘6fbf3ec767’, time: ‘2017-09-27T15:28:36.4Z’
System info: host: ‘csrapp-02’, ip: ‘127.0.1.1’, os.name: ‘Linux’, os.arch: ‘amd64’, os.version: ‘4.9.77dwdwde.com’, java.version: ‘1.8.0_101’
Driver info: driver.version: ChromeDriver

我已经验证了chrome和chromedriver版本,它是兼容的。无法理解为什么它没有在centos上运行?同样的代码在mac上运行良好

聚甲醛

<dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>3.12.0</version>
    </dependency>

共有1个答案

符俊材
2023-03-14

此错误消息...

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed

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

当您在CentOS上使用Headless Chrome时,值得一提的是,根据讨论,“Headless Chrome入门”--如果在Windows上运行,则暂时需要禁用gpu

--disable-gpu \                # Temporarily needed if running on Windows.

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

  • 您使用的是chromeDrive=2.38
  • 您正在使用chrome=67.0
  • 您的Selenium Client版本是2017-09-27T15:28:36.4Z的3.6.0,几乎早了一年。
  • 你的JDK版本是1.8。0_101相当古老。

因此,JDK v8u101、Selenium Client v3.6.0、ChromeDriver v2.38和Chrome浏览器v67.0之间存在明显的不匹配

  • 将JDK升级到最新级别JDK 8u171
  • 将Selenium升级到当前版本3.12.0
  • 升级ChromeDriver至当前ChromeDriver v2.40版本
  • 将Chrome版本保持在Chrome v66-68级别之间。(根据ChromeDriver v2.40发行说明)
  • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
  • 在执行测试套件之前和之后,使用CCleaner工具清除所有操作系统杂务
  • 如果您的基本Web客户端版本太旧,请通过Revo卸载程序卸载它,并安装最新的GA和Web客户端发布版本
  • 重新启动系统
  • 执行测试
  • 始终调用驱动程序。quit()在要关闭的方法
 类似资料: