java - 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 不加载最新版本?
解决方案
WebDriverManager有一个内部知识数据库(称为版本数据库),实现为属性文件。该数据库映射已知驱动程序和浏览器版本。正如您在该文件中看到的,Firefox 78 的已知驱动程序版本是 geckodriver 0.26.0。这并不一定意味着最新版本的 geckodriver(目前为 0.29.1)与该浏览器版本不兼容,但尚未经过测试。
关于最新版本(0.29.1),版本数据库中避免使用,因为我在 Mac OS 中检测到该版本存在问题(甚至按照发行说明中的说明进行公证)。出于这个原因,目前 WebDriverManager 更喜欢 geckodriver 0.29.0 用于最新版本的 Firefox。
推荐阅读
- terraform - 如何将目录与 Terraform 同步?
- ssas - 优化过滤器
- python - 线性指南针 python 动画
- java - How to remove properties of objects in ArrayList
- r - 在 R Studio 中使用 Lubridate 创建年、月、日列会产生意想不到的结果
- c# - 使用祖先和路径的 GCP DataStore 实体
- hadoop - 运行内置“compute pi”hadoop 作业的命令
- maven - 如何在 Maven pom.xml 中将字符串转换为等效的 Ascii(Hex)
- featuretools - Select amount of past data when calculating features
- reactjs - Material UI Tab label font-size is really small