按照这个建议,在无界面模式下启动chromedriver.exe,并只使用以下参数:
options.AddArgument("headless");
options.AddArgument("window-size=1280,960");
chromedriver在无头模式下隐秘启动,但是Selenium的FindElement()
命令在Chrome无头页面上未找到任何内容。相反,它会抛出此异常:
OpenQA.Selenium.NoSuchElementException类型的异常在WebDriver.dll中发生,但未在用户代码中处理
附加信息:没有这样的元素:无法定位元素:
Q1: 有人成功在Chrome的无头模式下运行Selenium命令吗?
Q2: 您能够使用运行在无头模式下的chromedriver进行FindElement
操作吗?如果可以,您是如何做到的?
阅读更多后,也许需要类似以下内容?将其添加到Chrome启动选项中,然后可能连接到chromedriver?
"remote-debugging-port=9222"
但使用该选项后,IWebDriver和chromedriver都不会打开。
背景信息:为了回答“为什么要这样做?”主要原因是作为CI的一部分运行的测试。这些是在VM上运行的测试,可能不支持1080p显示器。如果我们以无头模式运行并以这种方式设置分辨率,那么就可以。
Selenium + Chrome + SomeProxy(用于在运行非单元测试,如IT / FT / Selenium基于浏览器的测试等时将调用重定向到端点)+以HEADLESS模式运行测试
时涉及代理(例如proxymob或类似代理),则似乎会出现此问题。我建议尝试使用不同的代理服务器(例如Traefik等)。 - AKS