会话未创建异常:消息:会话未创建:此版本的ChromeDriver仅支持Chrome 81版本。

184
我目前对Robot Framework还不熟悉。我正在使用最新版本的Chrome和Chromedriver,即80版本,但是当我尝试运行测试时,在Pycharm中出现“SessionNotCreatedException: Message:session not created: This version of ChromeDriver only supports Chrome version 81”的提示,但目前只有81的beta版本可用。我已经尝试卸载并重新安装,但是仍然没有作用,有人能帮我解决吗?谢谢!以下是截图: 1 2

为什么不使用版本81?它与版本80不兼容。 - AndiCover
仅有测试版可用,且不支持此功能。 - finlandlearner
1
在Selenium(Angular 8.2.x)中运行E2E测试时出现相同问题(驱动程序信息:chromedriver = 81.0.4044.20(f006328e39a9769596eb506c8841c3004b24e747-refs / branch-heads / 4044 @ {# 244}),platform = Windows NT 10.0.18362 x86_64) 在Object.checkLegacyResponse(.. \ node_modules \ selenium-webdriver \ lib \ error.js: 546:15)处 在parseHttpResponse(.. \ node_modules \ selenium-webdriver \ lib \ http.js: 509:13)处 在.. \ node_modules \ selenium-webdriver \ lib \ http.js: 441:30处 在processTicksAndRejections(internal / process / task_queues.js: 94:5)处 [08:54:47] E / launcher-进程以错误代码100退出 - JWallace
2
在我的情况下,我所要做的就是打开我的普通Chrome浏览器,进入菜单“帮助->关于Google Chrome”,然后它开始更新Chrome到最新版本(我有81并更新到83)。重新启动Chrome,当我重新运行chromedriver时,它就可以工作了。 - User
你只需要简单地更新ChromeDriver即可。我在Medium上写了一篇简单的文章来介绍如何更新ChromeDriver。 - ScottyBlades
这个回答解决了你的问题吗?[错误信息:“'chromedriver'可执行文件需要在路径中可用”] (https://dev59.com/HF0a5IYBdhLWcg3w3L8-) - AncientSwordRage
39个回答

277

我使用webdrive manager解决了这些问题。

你可以通过使用webdrive-manager自动使用正确的chromedriver。 安装webdrive-manager:

pip install webdriver-manager

然后在Python中按以下方式使用驱动程序

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

这个答案来自https://dev59.com/HF0a5IYBdhLWcg3w3L8-#52878725


3
谢谢@dylanvanw,但是每次都需要下载这张图片吗? - Espoir Murhabazi
3
@EspoirMurhabazi,你不需要每次都下载图片。在webdriver_manager中有一个缓存机制,因此如果可能的话,它会在你的计算机上使用webdriver_manager在之前运行中下载的正确驱动程序。 - dylanvanw
1
对我没用。我认为除非路径正确,否则这不会起作用。 - ScottyBlades
1
对于使用C#的人来说,解决方案是相同的,只需使用webdriver-manager Nuget包。请查看其Readme以获取用法。 - alelom
如果你遇到了这个错误:ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/LATEST_RELEASE_117.0.5938。这个链接对我解决了问题:https://stackoverflow.com/a/76851809/13641358。 - undefined
显示剩余2条评论

48

对我来说工作得很好。我在错误消息本身中找到了正确的路径,并用刚下载的文件替换了它。希望这也能帮到你。 - Al Martins
你如何找到正确的路径?编辑:我找到了路径。在Mac上,按cmd+shift+g然后输入/usr/local/bin。 - j413254

47

我在MacOS上收到了相同的消息:

"selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81"

然后我运行了这个命令,问题解决了:

# Homebrew 3
brew upgrade chromedriver

# Homebrew < 3
brew cask upgrade chromedriver

5
针对 homebrew 3,只需要执行 brew upgrade chromedriver 即可。 - moveson
这也解决了我的 Ruby 框架中的错误 :) - PJSCopeland

12

这个错误信息...

SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 81

这意味着ChromeDriver v81无法启动/生成一个新的Browsing Context,即版本不是81.0的Chrome浏览器


你主要的问题在于以下二进制文件版本不兼容:

  • 你提到使用chromedriver=80chrome=80,但在程序执行期间,一些方式使用了ChromeDriver v 81.0
  • 因此,很明显你的系统中存在chromedriver=81.0,并且存在于系统的PATH变量中,在执行如下命令时被调用:

    driver = webdriver.Chrome()
    

解决方案

有两种解决方案:

  • chrome升级至Chrome版本81.0。(根据ChromeDriver v81.0发布说明
  • 或者您可以使用以下方法覆盖默认的chromedriver v81.0二进制文件位置,改为chromedriver v80.0二进制文件位置:

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe')
driver.get('http://google.com/')

参考资料

您可以在以下几个讨论中找到相关内容:


感谢你的回复,@debanjan。我也尝试使用火狐浏览器,安装并添加了geckodriver的路径。 - finlandlearner
我们如何获取路径? - ScottyBlades
“executable_path” 似乎毫无作用。我的 “/usr/local/bin/chromedriver --version” 与它要求的确切版本匹配,但它仍然抱怨版本不匹配。 - Cerin

8

这对我有效

brew cask upgrade chromedriver

上述方法在 MacOS 上已经过时,可以使用以下命令进行 ChromeDriver 安装: brew install chromedriver (如果未安装) brew upgrade chromedriver

1
Brew 默认在 MacOs 中可用。但你必须在 Windows 上安装它。 - Ruchira

6
  1. 首先检查最新的Chrome版本(这是您的浏览器Chrome版本)链接

  2. 从此链接下载相同版本的Chrome Web Driver。

如果不匹配您的Chrome Browser版本,不要下载最新的Chrome Web Driver。

注意:当我撰写此消息时,最新的Chrome Browser版本为84,但最新的Chrome Driver版本为85。 我使用Chrome Driver版本84,以使Chrome Driver和Chrome Browser版本相同。


6

5
解决方案(至少在OSX上)为:
  1. 下载最新的chromedriver文件。
  2. 解压已下载的文件。
  3. 搜索计算机上旧的chromedriver文件的位置,并使用新的chromedriver文件替换它。
  4. 右键单击chromedriver文件,然后单击打开。 不要双击,因为Mac不会以正确的方式打开它。
  5. 文件第一次运行后,您可以关闭它,更新就会完成。

如何找到我的Chromedriver的位置? - Konstantin Vahrushev
我打开了一个Finder实例,并在搜索栏中键入“chromedriver”(确保搜索设置为“This Mac”,而不是“Recents”)。看到结果后,向下滚动,当您看到它时,右键单击它并选择“显示包含文件夹”。随意替换。 - Mauro
1
@KonstantinVahrushev 使用命令 which chromedriver - casper123
@casper123 怎样使用 chromedriver 的命令? - Čamo
@Čamo 如果你使用的是Mac电脑,chromedriver的默认路径为/usr/local/bin/chromedriver。 - casper123
我正在使用Ubuntu / Win 10,但问题已经解决了。 - Čamo

5

3

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