![](/img/trans.png)
[英]org.openqa.selenium.WebDriverException: unknown error: chrome failed to start using Selenium ChromeDriver and Chrome through Java
[英]org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed using ChromeDriver Selenium in Jenkins on Ubuntu 18.04
Chrome 在我的 Jenkins 上不穩定。 當我運行 build 5 次時,它運行 1 - 2 次成功,另外 3 次出現上述錯誤。
鉻的代碼:
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");
我已經采取了一些步驟:
此錯誤消息...
...意味着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安裝在每個系統的默認位置,如下圖所示:
1對於 Linux 系統,ChromeDriver 期望/usr/bin/google-chrome
成為實際 Chrome 二進制文件的符號鏈接。
您可以在什么是 ChromeDriver 的默認位置以及在 Windows 上安裝 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();
其他注意事項 - 確保以下事項:
@Test
。tearDown(){}
方法中調用driver.quit()
以優雅地關閉和銷毀WebDriver和Web 客戶端實例。您可以在以下位置找到一些相關的討論:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.