I have updated my startUsingSeleniumWebDriver project to handle changes in WebDriver
MarionetteDriver removed in version
3.1.0 and above
3.0.1 of Selenium WebDriver I noticed that the
MarionetteDriver was marked as deprecated.
The WebDriver team don’t mess about, and in the next version (
FirefoxDriver defaults to Marionette/GeckoDriver mode, so if you have been using
MarionetteDriver you should change the code to use
3.3.0 had a Bug in
toDesiredCapabilities where the binary path will not be found, so skip this version entirely if you want to specify the path of the firefox executable
This version is outdated - so just don’t use it.
Legacy Firefox Driver Changes
Legacy Firefox works unchanged in 3.1.0 and 3.2.0.
3.3.1 uses System Property not the capability
3.3.1 in order to use legacy driver you must set the system property
Property must be set,
FirefoxOptions ignores the capability and only uses the system property to determine if marionette should be used or not.
So instead of:
Instead, in WebDriver
3.3.1 and above, you need to use system properties to use the legacy driver.
System.setProperty( FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE, "false");
If you set the Firefox Executable then it must be on the same drive as your tests run from
asUnixPath method in
FirefoxOptions.binaryPath is incorrect, but the capability is still correct.
But the path finding algorithms use the
Because it trims off the driver identifier in Windows the location of the executable has to be on the same drive as the tests are running from e.g. if your tests are running on drive D and the executable is on drive C then the path will be incorrect
I raised an issue against this so you can see if this changes. https://github.com/SeleniumHQ/selenium/issues/3667
Most people don’t do this, I don’t expect it to be a high priority fix. And the workaround is simple - keep the tests and the executable on the same drive.