繁体   English   中英

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

[英]SessionNotCreatedException: This version of ChromeDriver only supports Chrome version 84 using ChromeDriver and Chrome through Selenium and Python

我在 windows 7、selenium、chromedriver 版本 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,但我无法导航到网站!

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

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

此错误消息...

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

...意味着ChromeDriver无法启动/产生新的浏览上下文,即Chrome 浏览器session。


分析

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

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

支持Chrome 版本 84

  • 大概您正在使用chrome=83最新的 Chrome 推送。

谷歌浏览器是最新的

因此ChromeDriver v84Chrome 浏览器 v83之间存在明显的不匹配


解决方案

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

此外,还要确保:

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

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

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

这可以通过使用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://stackoverflow.com/a/58727916/9928905

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM