簡體   English   中英

帶有無頭鉻和硒的 NoSuchElementException

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM