首页 > 解决方案 > Webdrivermanager 无法识别最新的 geckodriver 并下载旧的

问题描述

我使用 webdrivermanager

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>4.4.3</version>
</dependency>

和 FF 78.12.0esr(64 位)和 Java 中的 selenium 服务器 3.14。

geckodriver https://github.com/mozilla/geckodriver/releases有各种版本,根据https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html表我应该可以使用驱动程序的最新版本,因此应下载 0.29.1。

当我在 webdrivermanager 上决定版本时,会下载 0.26 版的壁虎驱动程序(WebDriverManager.firefoxdriver().setup();)。当我强制使用最新版本 ( WebDriverManager.firefoxdriver().driverVersion("0.29.1").setup();) 时,会下载较新的驱动程序并与我的测试一起使用,没有任何问题。

为什么 webdriver 不加载最新版本?

标签: javaseleniumselenium-webdriverselenium-firefoxdriverwebdrivermanager-java

解决方案


WebDriverManager有一个内部知识数据库(称为版本数据库),实现为属性文件。该数据库映射已知驱动程序和浏览器版本。正如您在该文件中看到的,Firefox 78 的已知驱动程序版本是 geckodriver 0.26.0。这并不一定意味着最新版本的 geckodriver(目前为 0.29.1)与该浏览器版本不兼容,但尚未经过测试。

关于最新版本(0.29.1),版本数据库中避免使用,因为我在 Mac OS 中检测到该版本存在问题(甚至按照发行说明中的​​说明进行公证)。出于这个原因,目前 WebDriverManager 更喜欢 geckodriver 0.29.0 用于最新版本的 Firefox。


推荐阅读