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

Posted

技术标签:

【中文标题】哪个 ChromeDriver 版本与哪个 Chrome 浏览器版本兼容?【英文标题】:Which ChromeDriver version is compatible with which Chrome Browser version? 【发布时间】:2017-04-29 05:45:02 【问题描述】:

其实我有点困惑。虽然我读到了several resources 这方面的内容。

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

我找到了这个文字from GitHub:

ChromeDriver 仅兼容 Chrome 版本 12.0.712.0 或 较新。如果您需要测试旧版 Chrome,请使用 Selenium RC 和一个 Selenium 支持的 WebDriver 实例。

我的问题是所有 ChromeDriver 版本都兼容所有 Chrome 版本吗?各个版本之间没有冲突吗?

在哪里可以找到 ChromeDriver 和 ChromeBrowser 之间匹配的所有版本的文档?

【问题讨论】:

【参考方案1】:

首先,并非所有 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 浏览器的自动更新。正确的? @ProgrammersBlock 这取决于。通常对我来说更新意味着安全更改,所以我不想错过任何这些。我认为它真正需要的是一个自动检查新 ChromeDrivers 并提前通知我的脚本。 :)【参考方案2】:

兼容性矩阵

下面是chromedriver和chrome的兼容性图表。 此信息可在the Chromedriver downloads page 找到。

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+

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,那么请将您正在使用的最新版本的 chrome 插入 Chromedriver version selection guide,然后希望最好。实际兼容性将取决于所涉及的确切版本以及您使用的功能。

所有版本都不是交叉兼容的。

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

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

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

未知错误:调用函数结果缺少“值”

更新到 Chromedriver 2.37 解决了这个问题。

【讨论】:

【参考方案3】:

我发现,chrome 和 chromedriver 版本支持政策最近发生了变化。

如downloads page所述:

If you are using Chrome version please download chromedriver
Chrome v97 ChromeDriver 97.0.4692.36
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
older version of Chrome see Barett's anwer

有针对特定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,您将获得一个网址“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/”。 初次下载后,建议您偶尔再过一遍上述流程,看看是否有bug修复发布。

请注意,此版本选择算法可以轻松自动化。比如simple powershell script in another answer在windows平台上自动更新chromedriver。

【讨论】:

太棒了...您刚刚想到了自动更新的想法...好吧。 请注意,Chrome 驱动程序 85 自版本 85.0.4183.38 更新至版本 85.0.4183.83 未检测到安装目录的更改。 83今天早些时候出来了。干杯! 我下载了最新版本(根据表格)。在这种情况下Chrome v96 并使用driver = webdriver.Chrome(PATH) 重新运行指向正确PATH 的代码,但仍然收到相同的错误消息......还有什么要做的?【参考方案4】:

在撰写本文时,我发现 chromedriver 2.46 或 2.36 可以很好地与 Chrome 75.0.3770.100 配合使用

此处的文档:http://chromedriver.chromium.org/downloads states align driver and browser alike 但我发现在使用 Chrome 75 时即使使用最新的驱动程序也会出现问题

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

【讨论】:

【参考方案5】:

就我而言,我只是通过npm install protractor@latest -gnpm install webdriver-manager@latest 解决了它。我使用的是 chrome 80.x 版本。它在 Angular 4 和 6 中都适用于我

【讨论】:

【参考方案6】:

这是一个有用的网站,列出了 Chrome 最新版本的映射 -

https://www.uitests-chromedrivermapping.com

【讨论】:

【参考方案7】:

Chrome 浏览器版本应与 chromeDriver 版本匹配。 转到:chrome://settings/help

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

转到您拥有 chromeDriver 的文件夹 打开指向文件夹的命令提示符 运行:chromeDriver -v

【讨论】:

以上是关于哪个 ChromeDriver 版本与哪个 Chrome 浏览器版本兼容?的主要内容,如果未能解决你的问题,请参考以下文章

Selenium ChromeDriver与Chrome版本映射表(更新到v78)

Selenium ChromeDriver与Chrome版本映射表(更新到v78)

python小技能: 搭建selenium与ChromeDriver环境4Mac

如何在 PyCharm 中为 selenium-robotframework 更新 Chromedriver 版本

哪个 Firefox 版本与 Selenium 2.53.0 兼容?

哪个版本的 Eclipse/Equinox 实现了哪个版本的 OSGi?