由于 Edge 已升级到 v80,它为我们的自动化引入了“重大更改”( https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium?tabs=c-sharp )。Microsoft 在附加的链接中记录了这一点。理想情况下,我希望继续使用 Selenium 3 并使用 edge-selenium-tools ( https://github.com/microsoft/edge-selenium-tools ),但考虑到我的框架是基于 Java 的,这不是一个选择。
为了解决这个问题,我更新到了 Selenium 4(alpha 5),它支持 Edge Chromium 的 v81,但只是在一定程度上。
将ChromiumEdgeDriverService
/ EdgeDriverService
(我现在什至不确定我现在应该使用哪个)作为参数传递给的EdgeDriver
WebDriver
能力已被取消(https://www.javadoc.io/doc/org.seleniumhq.selenium/selenium-edge-driver /latest/org/openqa/selenium/edge/package-summary.html)。这是我在无头模式下实现下载的解决方法所依赖的东西,因此我渴望恢复该功能。
我不确定这是否应该作为改进或回归报告给 SeleniumHQ(https://github.com/SeleniumHQ/selenium/issues/new/choose),或者我应该向微软提出的问题,但我是寻找一些关于在这种情况下我应该做什么的指导。
为了澄清,以下是我在 Chrome 中使用的 - 它工作正常:
ChromeDriverService chromeDriverService = ChromeDriverService.createDefaultService();
driver = new ChromeDriver(chromeDriverService,new ChromeOptions())
这就是我想在 Edge Chromium 中做的事情——这会导致错误,因为这些参数不存在构造函数:
EdgeDriverService edgeDriverService = EdgeDriverService.createDefaultService();
driver = new EdgeDriver(edgeDriverService,new EdgeOptions());
ps 完全一样ChromiumEdgeDriverService