[英]NoSuchElementException with headless chrome and selenium
我正在嘗試使用無頭 chrome 進行硒測試,並進行了以下更改:
DesiredCapabilities desiredCapabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("--disable-gpu");
options.addArguments("window-size=1800x1080");
desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, options);
我的測試登錄到內部頁面,然后等待元素可見:
selenium.waitForElementVisible("xpath=//tr/td/div[@class[contains(., 'x-grid-cell-inner')] and text()='Global Test Merchant 14']");
當我沒有無頭選項時,這一切都很好,但我得到:
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//tr/td/div[@class[contains(., 'x-grid-cell-inner')] and text()='Global Test Merchant 14']"}
當我使用 --headless 運行測試時。
Chrome 版本:62.0.3202.89 chromeDriver:2.33.506120 Selenium 版本:2.53.0 Windows 7
我有同樣的問題,我的錯誤是因為我正在制作 driver.get("localhost:...") 而不是 driver.get(" http://localhost :...")
我在無頭運行時也遇到了類似的問題,我的項目在無頭運行時繼續觸發 NoSuchElementException 並且默認瀏覽器檢查正在妨礙,請嘗試添加這些參數。 只是一個想法
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--test-type");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--no-first-run");
chromeOptions.addArguments("--no-default-browser-check");
chromeOptions.addArguments("--ignore-certificate-errors");
chromeOptions.addArguments("--start-maximized");
當您看到NoSuchElementException 時,您可以考慮將xpath
與服務員一起使用,以使元素可見,如下所示:
//tr/td/div[@class='x-grid-cell-inner' and contains(., 'Global Test Merchant')]
我有一個類似的問題。
我嘗試了以下選項,它對我有用。
options.addArguments("--window-size=1920,1080");
options.addArguments("--disable-extensions");
options.addArguments("--proxy-server='direct://'");
options.addArguments("--proxy-bypass-list=*");
options.addArguments("--start-maximized");
options.addArguments("--headless");
options.addArguments("--disable-gpu");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--no-sandbox");
options.addArguments("--ignore-certificate-errors");
在我的特殊情況下,我只需要使用這 3 個參數來解決相同的問題:
options.addArguments("--headless");
options.addArguments("--start-maximized");
options.addArguments("--window-size=1920,1080");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.