[英]Selenium FindElement and Chrome in Headless mode
在無頭模式下啟動chromedriver.exe后遵循此建議並僅使用這些參數
options.AddArgument("headless");
options.AddArgument("window-size=1280,960");
chromedriver無形地打開。 但Selenium的FindElement()
命令在無頭Chrome頁面上找不到任何內容。 相反,它會拋出此異常:
WebDriver.dll中出現“OpenQA.Selenium.NoSuchElementException”類型的例外但未在用戶代碼中處理
附加信息:沒有這樣的元素:無法找到元素:
Q1:有沒有人在Chrome的無頭模式下成功運行Selenium命令?
Q2:你是否能夠在無頭模式下運行的chromedriver中使用FindElement
? 如果是的話,你是怎么做到的?
在閱讀了更多內容之后,或許某些內容可能是必要的? 將此添加到Chrome啟動選項,然后將chromedriver連接到它?
"remote-debugging-port=9222"
但是使用該選項,IWebDriver和chromedriver無法打開。
背景信息:回答,你為什么要這樣做? 主要原因是測試作為CI的一部分運行。 這些是在VM上運行的測試,可能不支持1080p監視器。 如果我們以無頭模式運行它並以我們可能的方式設置分辨率。
在主類中添加以下代碼行:
ChromeOptions options = new ChromeOptions();
options.setHeadless(true);
options.addArguments("--window-size=1920,1080");
options.addArguments("--disable-gpu");
options.addArguments("--disable-extensions"); options.setExperimentalOption("useAutomationExtension", false); options.addArguments("--proxy-server='direct://'");
options.addArguments("--proxy-bypass-list=*");
options.addArguments("--start-maximized");
options.addArguments("--headless");
WebDriver driver = new ChromeDriver(options);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.