Since Edge has been upgraded to v80, it has introduced a "breaking change" (https://learn.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) but given that my framework is Java based that was not an option.
To resolve this, then, I updated to Selenium 4 (alpha 5), which supports v81 of Edge Chromium, but only to an extent.
The ability to pass in ChromiumEdgeDriverService
/EdgeDriverService
(not sure which I should even be using now) as a parameter to the EdgeDriver
WebDriver
has been taken away (https://www.javadoc.io/doc/org.seleniumhq.selenium/selenium-edge-driver/latest/org/openqa/selenium/edge/package-summary.html). This is something I rely on to implement a workaround for downloads in headless mode and so I am eager to restore that functionality.
I am not sure if this is something I should be reporting to SeleniumHQ (https://github.com/SeleniumHQ/selenium/issues/new/choose) as an improvement or regression, or something I should be raising with Microsoft but I am looking for some guidance on what I should do in this instance.
To clarify, below is what I use in Chrome - it is working fine:
ChromeDriverService chromeDriverService = ChromeDriverService.createDefaultService();
driver = new ChromeDriver(chromeDriverService,new ChromeOptions())
And this is what I want to do in Edge Chromium - this results in error as the constructor does not exist for these parameters:
EdgeDriverService edgeDriverService = EdgeDriverService.createDefaultService();
driver = new EdgeDriver(edgeDriverService,new EdgeOptions());
p.s. It's exactly the same for ChromiumEdgeDriverService