我使用webdrivermanager
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>4.4.3</version>
</dependency>
和FF 78.12.0esr(64位)与selenium server 3.14在Java。
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有一个内部知识库(叫做versions database),以属性文件的形式实现。该数据库映射已知的驱动程序和浏览器版本。正如您在该文件中看到的,Firefox 78的已知驱动程序版本是geckodriver 0.26.0。这并不一定意味着最新版本的geckodriver(目前为0.29.1)与该浏览器版本不兼容,但它尚未经过测试。
关于最新版本(0.29.1),在版本数据库中避免了,因为我在Mac OS中发现了该版本的问题(甚至按照发行说明中的描述进行了公证)。因此,目前WebDriverManager更倾向于使用geckodriver 0.29.0作为最新版本的Firefox。