EdgeDriver (v81) 不再支持将 DriverService 作为参数传入的能力

EdgeDriver (v81) no longer supports ability to pass in DriverService as a parameter

自从 Edge 升级到 v80 后,它引入了 "breaking change" (https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium?tabs=c-sharp) to our automation. This is documented by Microsoft in the attached link. Ideally I would have liked to remain on Selenium 3 and use the 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) 的事情,或者我应该向 Microsoft 提出的事情,但我正在寻找一些关于我的指导在这种情况下应该这样做。

澄清一下,下面是我在 Chrome 中使用的内容 - 它工作正常:

ChromeDriverService chromeDriverService = ChromeDriverService.createDefaultService();
driver = new ChromeDriver(chromeDriverService,new ChromeOptions())

这就是我想在 Edge Chromium 中做的事情——这会导致错误,因为这些参数的构造函数不存在:

EdgeDriverService edgeDriverService = EdgeDriverService.createDefaultService();
driver = new EdgeDriver(edgeDriverService,new EdgeOptions());

p.s。 ChromiumEdgeDriverService

完全一样

现在可以在 Selenium 4.0.0-alpha-6 中使用