gpt4 book ai didi

java - org.openqa.selenium.WebDriverException : unknown error: Chrome failed to start: crashed using ChromeDriver Selenium in Jenkins on Ubuntu 18. 04

转载 作者:行者123 更新时间:2023-12-01 12:00:56 25 4
gpt4 key购买 nike

Chrome 在我的 Jenkins 上不稳定。当我运行 build 5 次时,它运行 1 - 2 次成功,另外 3 次出现上述错误。
错误快照:
enter image description here
Chrome 代码:

ChromeOptions options = new ChromeOptions();
System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");
options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
driver = new ChromeDriver(options);
driver.get("https://mywebsite.com");

我已经采取了一些步骤:
  • 为 google chrome 和 chrome 驱动提供 777 权限
  • 设置:在构建之前启动 Xvfb,并在 Jenkins build设置中将其关闭为 True
    enter image description here
  • ChromeDriver 81.0.4044.69
  • 谷歌浏览器 81.0.4044.129
  • Ubuntu 18.04.4 LTS(GNU/Linux 4.15.0-99-generic x86_64)
  • 最佳答案

    此错误消息...

    snapshot

    ...意味着 ChromeDriver 无法启动/产生新的浏览上下文,即 Chrome 浏览器 session 。

    深潜

    查看您提供的错误堆栈跟踪的快照,尽管您提到使用 ChromeDriver 81.0.4044.69 和 Google Chrome 81.0.4044.129,但您使用的不同二进制文件的版本之间似乎仍然不匹配,可能是 Chrome 浏览器未安装在系统中的默认位置或由于 JDK 不匹配。此外,ChromeDriver 81.0.4044.69 (2020-03-17) 有点不稳定,已被 ChromeDriver 81.0.4044.138 (2020-05-05) 取代

    但是,服务器(即 ChromeDriver)希望您将 Chrome 安装在每个系统的默认位置,如下图所示:

    Chrome_binary_expected_location

    1对于 Linux 系统,ChromeDriver 需要 /usr/bin/google-chrome成为实际 Chrome 二进制文件的符号链接(symbolic link)。

    You can find a detailed discussion in What is default location of ChromeDriver and for installing Chrome on Windows



    解决方案

    如果您在非标准位置使用 Chrome 可执行文件,则必须覆盖 Chrome 二进制位置,如下所示:
  • 基于代码的解决方案:
    System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
    ChromeOptions options = new ChromeOptions();
    options.setBinary('/usr/bin/google-chrome'); //chrome binary location
    options.addArguments("--headless");
    options.addArguments("--no-sandbox");
    options.addArguments("--disable-dev-shm-usage");
    WebDriver driver = new ChromeDriver(options);
    driver.get("https://www.google.com/");
    //execute the remaining steps
    driver.quit();
  • 其他注意事项 - 确保以下事项:
  • JDK 升级到当前级别 JDK 8u251 .
  • Selenium 升级到当前水平 Version 3.141.59 .
  • ChromeDriver 已更新到当前 ChromeDriver v81.0.4044.138等级。
  • Chrome 已更新至当前 Chrome 版本 81.0.4044.138 级别。 (根据 ChromeDriver v80.0 release notes )
  • 通过 IDE 清理项目工作区并仅使用所需的依赖项重建项目。
  • 执行您的 @Test作为 非根用户。
  • 总是调用 driver.quit()tearDown(){} 内优雅地关闭和销毁 WebDriver 和 Web 客户端实例的方法。


  • 引用

    您可以在以下位置找到一些相关的讨论:
  • WebDriverException: unknown error: DevToolsActivePort file doesn't exist while trying to initiate Chrome Browser
  • How to configure ChromeDriver to initiate Chrome browser in Headless mode through Selenium?
  • Running Chromedriver on Ubuntu Server headlessly
  • 关于java - org.openqa.selenium.WebDriverException : unknown error: Chrome failed to start: crashed using ChromeDriver Selenium in Jenkins on Ubuntu 18. 04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61607750/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com