Selenium - 此版本的 ChromeDriver 仅支持 Chrome 版本 xx

Kno*_*uns 8 testing selenium google-chrome selenium-webdriver

今天突然我所有的测试都停止工作,给我以下错误消息:

selenium.common.exceptions.SessionNotCreatedException:消息:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 97 当前浏览器版本为 99.0.4844.51,二进制路径为 C:\Program Files\Google\Chrome\Application\chrome.exe

在错误发生之前我没有更新浏览器(自动更新已禁用),我根本没有更改任何内容。我现在已经下载了浏览器和驱动程序的版本 99.0.4844.51,但我仍然遇到同样的错误。我已经尝试了在这里和互联网上可以找到的所有解决方案(尽管大多数只是“更新你的东西”),但没有任何效果。

小智 6

截至 2022 年 9 月,以下解决方案适用于我的 M1 Macbook。

  • 卸载 Chrome 浏览器
  • 然后卸载chromedriverbrew uninstall --cask chromedriver
  • 重新安装Chrome浏览器
  • 然后重新安装chromedriverbrew install --cask chromedriver


Kno*_*uns 1

虽然这里的许多答案都是正确的,但它们不能轻易自动化。

这就是我所做的:

a) Anand Gautams 解决方案在某些情况下确实有效:本地和手动使用测试。在这些情况下我使用 webdriver-manager 并且效果很好。如果阿南德发布了答案而不是评论,我会将其标记为部分解决方案。

然而:

b) 在舞台和生产中,以及在公司服务器上进行自动化下载程序时,通常是一个坏主意。是的,您可以将来源列入白名单,但出于多种安全原因(从技术到法律),您不应该这样做。我的解决方案是一个相当令人畏惧的解决方案:我为所有受支持的浏览器收集了所有合理的网络驱动程序版本(由于客户对“合理”的定义完全不同,因此正在定期扩展),并制作了一个模块来检查已安装的浏览器及其版本,并将它们与相应的 Webdriver 版本配对(用于本地使用),或者使您能够手动选择要测试的版本(用于服务器上的测试自动化)。

b1)我不确定是否允许我在此处公开发布该模块,如果是这种情况,我会询问并编辑答案。

b2) 虽然此解决方案使您能够在封闭系统中自动支持大量浏览器和版本的带宽,但它非常乏味,并且维护有时可能会是工作密集型。如果可能的话,我肯定会尝试避免这种解决方案。

现在我将把这个答案标记为解决方案。我希望将来有人能想出更好的东西。