簡體   English   中英

無頭模式下的Selenium FindElement和Chrome

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

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