I use webdrivermanager
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>4.4.3</version>
</dependency>
and FF 78.12.0esr (64-bit) with selenium server 3.14 in Java.
There are various versions of geckodriver https://github.com/mozilla/geckodriver/releases and according to https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html table I should be able to use latest version of the driver, thus 0.29.1 should be downloaded.
When I let the decision about version on webdrivermanager the gecko driver in version 0.26 is downloaded (WebDriverManager.firefoxdriver().setup();
).
When I force to latest version (WebDriverManager.firefoxdriver().driverVersion("0.29.1").setup();
) the newer driver is downloaded and works with my tests without any issues.
Why the webdriver does not load the newest version?
WebDriverManager has an internal knowledge database (called versions database), implemented as a properties file. This database maps the know driver and browsers version. As you can see in that file, the known driver version for Firefox 78 is geckodriver 0.26.0. That does not necessarily means that the latest version of geckodriver (0.29.1 at this moment) is incompatible with that browser version, but it has not been tested.
Regarding the latest version (0.29.1), is avoided in the versions database since I have detected problems with that version in Mac OS (even making the notarization as described in the release notes). For that reason, currently WebDriverManager prefers geckodriver 0.29.0 for the latest versions of Firefox.