在无头模式following this advice中启动chromedriver.exe并仅使用这些参数后

 options.AddArgument("headless");
 options.AddArgument("window-size=1280,960");

chromedriver无法打开。但是Selenium的FindElement()命令在无头的Chrome页面上找不到任何内容。相反,它将引发此异常:

WebDriver.dll中发生类型'OpenQA.Selenium.NoSuchElementException'的异常,但未在用户代码中处理
附加信息:无此类元素:无法找到元素:

问题1:是否有人成功在Chrome的无头模式下运行Selenium命令?
问题2:您是否可以将FindElement与以无头模式运行的chromedriver一起使用?如果是,您是如何做到的?

阅读更多内容后,也许有必要遵循这些思路?将此添加到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);

07-28 01:10