【发布时间】:2020-05-13 13:38:19
【问题描述】:
自从 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(我现在什至不确定我现在应该使用哪个)作为参数传递给EdgeDriverWebDriver 的功能已被取消(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());
附言ChromiumEdgeDriverService 完全一样
【问题讨论】:
-
我测试并重现了这个问题。您仍然可以使用稳定版本的 selenium 3.141.59。这样您就可以传入参数 EdgeDriverService,我认为您不必使用 edge-selenium-tools。您可以参考this thread 中接受的答案以获取更多信息。
-
问题是如果你有Edge的v80或v81和selenium的v3.141.59,你不能在EdgeDriver中指定EdgeOptions。所以你基本上可以在选择 EdgeOptions 和 EdgeDriverService 之间做出选择……而且前者比后者好。
-
是的,你是对的。我发现你在微软技术社区发布的另一个帖子,官方回复说他们将在接下来的几周内解决这个问题。那就等更新吧。
-
酷 - 是的,我做到了!如果我一切正常,我会用解决方案更新它
标签: java microsoft-edge selenium-edgedriver