会话未创建异常:此版本的ChromeDriver仅支持使用Selenium和Python通过ChromeDriver和Chrome浏览器版本84。

13

我在Windows 7上使用Python 3、Selenium和Chromedriver版本84(最新版本)来自动化我的Chrome浏览器。

我正在使用以下脚本:

from selenium import webdriver
#import chromedriver_binary  # Adds chromedriver binary to path

driver = webdriver.Chrome()
driver.get("http://www.python.org")

每次运行它,我总是会遇到这个错误。

Traceback (most recent call last):
  File "D:\Huzefa\Desktop\zzzzzz.py", line 4, in <module>
    driver = webdriver.Chrome()
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Huzefa\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 84

我的ChromeDriver已经设置好路径。我也尝试使用其他版本的chromedriver,但是无法打开网站!


错误信息似乎很明显:要么您需要使用Chrome >= 84,要么使用早期版本的Selenium。Selenium的安装版本是什么? - V-R
也许您需要卸载Selenium IDE,然后从selenium.dev/downloads下载并安装适当的早期版本,使用“Previous IDE versions”链接。 - V-R
4个回答

10

你的ChromeDriver版本和安装的Chrome版本需要匹配。在回答时,你正在使用ChromeDriver适用于 Chrome 84版本 ,这是Chrome的beta(非稳定)版本;但很可能你没有在使用它,你可能是在83版本上运行。

检查你的Chrome版本(帮助->关于),然后找到正确的ChromeDriver版本。或者,你可以使用webdriver-manager工具来为你处理这个问题。


10
我们可以自动化下载二进制文件并配置路径的任务。
我们不需要担心浏览器版本或二进制版本。
这可以使用webdriver-manager完成。
pip install webdriver-manager

现在,只需进行以下更改,问题中的代码就可以简单地工作:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

相同的方法也可用于设置Firefox、Edge和IE二进制文件。

原回答 - https://dev59.com/hlkS5IYBdhLWcg3wNkH6#58727916


4

This error message...

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

这意味着ChromeDriver无法初始化/生成新的Browsing Context,即Chrome Browser会话。


分析

你主要的问题在于你所使用二进制文件的版本不兼容,具体如下:

  • 你正在使用chromedriver=84
  • chromedriver=84的发布说明清楚地提到:

支持Chrome 84版本

  • 你很可能正在使用最新的Chrome版本chrome=83

Google Chrome is up to date

因此,ChromeDriver v84Chrome Browser v83之间存在明显的不匹配。


解决方案

这个问题有两个(2)解决方案。

此外还要确保:

  • Selenium已升级到当前版本3.141.59
  • 如果您的基本Web Client版本太旧,则卸载它并安装最新的GA和发布版本的Web Client
  • 通过您的IDE清理您的Project Workspace,并仅重建包含所需依赖项的项目。
  • 如果您的基本Web Client版本太旧,则卸载它并安装最新的GA和发布版本的Web Client
  • 进行系统重新启动
  • 非root用户身份执行您的@Test
  • 始终在tearDown(){}方法中调用driver.quit()以优雅地关闭并销毁WebDriverWeb Client实例。

0

虽然这个链接可能回答了问题,但最好在这里包含答案的关键部分,并提供链接作为参考。如果链接的页面发生更改,仅有链接的答案可能会失效。- 来自评论 - Willie Cheng

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