哪个ChromeDriver版本与哪个Chrome浏览器版本兼容?

47

实际上,我有些困惑。虽然我阅读了关于此的几个资源

为了使用ChromeBrowser 进行 Selenium 3 测试,我们需要一个额外的应用程序,称为ChromeDriver

我在GitHub上找到了这段文字:

ChromeDriver仅与Chrome版本12.0.712.0或更高版本兼容。如果您需要测试旧版本的Chrome,请使用Selenium RC和Selenium-backed WebDriver实例。

我的问题是所有的ChromeDriver版本都与所有的Chrome版本兼容吗?每个版本之间是否存在冲突?

我在哪里可以找到所有版本匹配ChromeDriver和Chrome Browser的文档?

7个回答

78

2.46版本之后,ChromeDriver的主要版本号与Chrome相匹配

chromedriver    chrome
76.0.3809.68    76
75.0.3770.140   75
74.0.3729.6     74
73.0.3683.68    73

看起来仅保证该版本内兼容性。

如果你因某种原因需要在多个Chrome版本上运行chromedriver,那么将你正在使用的最新版本号插入Chromedriver版本选择指南中,然后祈求吧。实际兼容性取决于涉及的确切版本以及您正在使用的功能。

旧版兼容矩阵

下面是Chromedriver与Chrome兼容性的图表。此信息可在Chromedriver下载页面找到。

chromedriver    chrome
2.46            71-73
2.45            70-72
2.44            69-71
2.43            69-71
2.42            68-70
2.41            67-69
2.40            66-68
2.39            66-68
2.38            65-67
2.37            64-66
2.36            63-65
2.35            62-64
2.34            61-63
2.33            60-62
---------------------
2.28            57+
2.25            54+
2.24            53+
2.22            51+
2.19            44+
2.15            42+

所有版本都不跨兼容。

例如,今天我们遇到了一个错误,chromedriver 2.33试图在Chrome 65上运行此软件:

((ChromeDriver) driver).findElement(By.id("firstName")).sendKeys("hello")

由于Chrome 63中的导航更改,在Chromedriver 2.34中更新,我们遇到了

未知错误:调用函数结果缺少'value'

升级至Chromedriver 2.37即可解决该问题。


完美。例如,如果使用Node和Chrome 96.x,则运行npm install chromedriver@96 - ow3n

62
我发现Chrome和Chromedriver版本的支持政策最近发生了变化。
正如下载页面所述:
如果您正在使用Chrome版本,请下载chromedriver。
Chrome v107:ChromeDriver 107.0.5304.18 Chrome v106:ChromeDriver 106.0.5249.61 Chrome v105:ChromeDriver 105.0.5195.52 Chrome v104:ChromeDriver 104.0.5112.79 Chrome v103:ChromeDriver 103.0.5060.134 Chrome v102:ChromeDriver 102.0.5005.61 Chrome v101:ChromeDriver 101.0.4951.41 Chrome v100:ChromeDriver 100.0.4896.60 Chrome v99:ChromeDriver 99.0.4844.51 Chrome v98:ChromeDriver 98.0.4758.102 Chrome v97:ChromeDriver 97.0.4692.71 Chrome v96:ChromeDriver 96.0.4664.45 Chrome v95:ChromeDriver 95.0.4638.69 Chrome v94:ChromeDriver 94.0.4606.113 Chrome v93:ChromeDriver 93.0.4577.63 Chrome v92:ChromeDriver 92.0.4515.107 Chrome v91:ChromeDriver 91.0.4472.101 Chrome v90:ChromeDriver 90.0.4430.24 Chrome v89:ChromeDriver 89.0.4389.23 Chrome v88:ChromeDriver 88.0.4324.96 Chrome v87:ChromeDriver 87.0.4280.88 Chrome v86:ChromeDriver 86.0.4240.22 Chrome v85:ChromeDriver 85.0.4183.87 Chrome v84:ChromeDriver 84.0.4147.30 Chrome v83:ChromeDriver 83.0.4103.39 Chrome v81:ChromeDriver 81.0.4044.69 Chrome v80:ChromeDriver 80.0.3987.106 Chrome v79:ChromeDriver 79.0.3945.36 Chrome v78:ChromeDriver 78.0.3904.105 Chrome v77:ChromeDriver 77.0.3865.40 Chrome v76:ChromeDriver 76.0.3809.126 Chrome v75:ChromeDriver 75.0.3770.140 Chrome v74:ChromeDriver 74.0.3729.6 Chrome v73:ChromeDriver 73.0.3683.68 旧版Chrome:请参见Barett的回答 这是选择特定Chrome版本的crhomedriver版本的通用指南:https://sites.google.com/a/chromium.org/chromedriver/downloads/version-selection 以下是摘录:
  • 首先,找出您正在使用的Chrome版本。假设您有Chrome 72.0.3626.81。
  • 获取Chrome版本号,删除最后一部分,并将结果附加到URL“https://chromedriver.storage.googleapis.com/LATEST_RELEASE_”。例如,使用Chrome版本72.0.3626.81,您会得到一个URL“https://chromedriver.storage.googleapis.com/LATEST_RELEASE_72.0.3626”。
  • 使用上一步创建的URL检索包含要使用的ChromeDriver版本的小文件。例如,上述URL将获取一个包含“72.0.3626.69”的文件。(当然,实际数字可能会在未来更改。)
  • 使用从上一步检索到的版本号构造下载ChromeDriver的URL。使用版本72.0.3626.69,URL将是“https://chromedriver.storage.googleapis.com/index.html?path=72.0.3626.69/”。
  • 在初始下载之后,建议您偶尔再次执行上述过程,以查看是否有任何错误修复版本。
请注意,此版本选择算法可以轻松自动化。例如,另一个答案中的简单PowerShell脚本已在Windows平台上自动化了chromedriver更新。

太好了,你刚想出自动更新事物的想法...好的,那就这样吧。 - gumuruh
请注意,Chrome驱动程序85已更新到版本85.0.4183.83,自版本85.0.4183.38以来未检测到更改安装目录。今天早些时候发布了83版本。干杯! - A Hassan
我下载了最新版本(根据表格)。在这种情况下,是 Chrome v96 并重新运行代码,指向正确的 PATH,使用 driver = webdriver.Chrome(PATH),但仍然收到相同的错误信息...还有什么可以做的吗? - Darren Lefcoe

8
首先,所有版本的ChromeDriver都不兼容所有版本的Chrome浏览器。
有时候我会运行我的脚本,如果它出现故障,我就会更新驱动程序。然后它就能正常工作了。Chrome悄悄地自动更新了,而没有告诉我。
要找到哪些chromedriver适用于哪个chrome版本,请查看当前发布说明的起始点。您可以查看以前版本的发布说明。
此链接将带您到当前版本的发布说明:https://chromedriver.storage.googleapis.com/2.26/notes.txt ChromeDriver v2.26 (2016-12-09)支持Chrome v53-55。
此页面将向您展示当前发布:https://sites.google.com/a/chromium.org/chromedriver/downloads

似乎我们需要取消选中那个 Chrome 浏览器的自动更新。对吗?@程序员们 - gumuruh
2
那要看情况。通常对我来说,更新意味着安全更改,所以我不想错过任何一个。我认为真正需要的是一个自动检查新的ChromeDriver并提前通知我的脚本。 :) - ProgrammersBlock

2

Chrome浏览器版本应该与chromeDriver版本匹配。 前往: chrome://settings/help

如何确认我正在使用正确的chromedriver?

  • 进入您拥有chromeDriver的文件夹
  • 打开命令提示符并指向该文件夹
  • 运行:chromeDriver -v

1
在我的情况下,我只需通过 npm install protractor@latest -gnpm install webdriver-manager@latest 来解决它。我使用的是 Chrome 80.x 版本。在 Angular 4 和 6 中,这对我起作用了。

0

0

在写这篇文章时,我发现chromedriver 2.46或2.36可以很好地与Chrome 75.0.3770.100一起使用。

这里的文档:http://chromedriver.chromium.org/downloads表明要使驱动程序和浏览器保持一致,但是我发现即使使用最新的驱动程序,当使用Chrome 75时仍然会出现问题。

我正在Windows 10机器上运行Selenium 2。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接