Hel*_*nds 6 java google-chrome jenkins selenium-webdriver ubuntu-18.04
Chrome 在我的 Jenkins 上不稳定。当我运行 build 5 次时,它运行 1 - 2 次成功,另外 3 次出现上述错误。
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");
Run Code Online (Sandbox Code Playgroud)
我已经采取了一些步骤:
这个错误信息...

...意味着ChromeDriver无法启动/生成新的浏览上下文,即Chrome 浏览器会话。
查看您提供的错误堆栈跟踪的快照,尽管您提到使用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安装在每个系统的默认位置,如下图所示:

1对于 Linux 系统,ChromeDriver 预计/usr/bin/google-chrome是实际 Chrome 二进制文件的符号链接。
如果您在非标准位置使用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();
Run Code Online (Sandbox Code Playgroud)其他注意事项 - 确保以下事项:
@Test以非 root用户身份执行。driver.quit()始终在方法内调用tearDown(){}以优雅地关闭和销毁WebDriver和Web Client实例。您可以在以下位置找到一些相关讨论:
| 归档时间: |
|
| 查看次数: |
1076 次 |
| 最近记录: |