SessionNotCreatedException:此版本的ChromeDriver仅支持使用ChromeDriver的Chrome版本84和通过Selenium和Python的Chrome

时间:2020-06-02 15:25:37

标签: python selenium google-chrome selenium-webdriver selenium-chromedriver

我在Windows 7,Selenium,chr​​omedriver 84版上使用python 3 (最新)来自动执行我的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,但是我无法导航到网站!

3 个答案:

答案 0 :(得分:4)

您的ChromeDriver版本和已安装的Chrome版本需要匹配。您正在使用Chrome version 84的ChromeDriver,在回答此问题时,它是Chrome(非稳定版)的Beta版;您可能没有使用它。您可能正在使用版本83。

检查您的Chrome版本(帮助->关于),然后找到正确的ChromeDriver release。您可以改用webdriver-manager来为您处理。

答案 1 :(得分:2)

此错误消息...

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

...表示 ChromeDriver 无法启动/产生新的浏览上下文,即 Chrome浏览器会话。


分析

您的主要问题是所使用的二进制版本之间的不兼容性,如下所示:

  • 您正在使用 chromedriver = 84
  • chromedriver=84的发行说明中明确提到:

支持 Chrome 84版本

  • 大概是您使用的Chrome最新推送 chrome = 83

Google Chrome is up to date

因此 ChromeDriver v84 Chrome浏览器v83

之间显然不匹配

解决方案

有两个(2)解决方案。

另外还要确保:

  • 已升级到当前级别Version 3.141.59
  • 如果您的基本 Web客户端版本太旧,则将其卸载并安装最新版本的 Web客户端 GA。
  • 通过 IDE
  • 清理项目项目工作区,并仅使用必需的依赖项重新构建项目
  • 如果您的基本 Web客户端版本太旧,则将其卸载并安装最新版本的 Web客户端 GA。
  • 进行系统重启
  • 非root用户用户的身份执行@Test
  • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web Client 实例。

答案 2 :(得分:1)

我们可以自动执行下载二进制文件和配置路径的任务。

我们不必担心浏览器版本或二进制版本

这可以通过使用webdriver-manager

来完成
pip install webdriver-manager

现在问题中的上述代码将与以下更改一起使用,

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

同样可以用来设置Firefox,Edge和二进制文件。

原始答案-https://stackoverflow.com/a/58727916/9928905