【问题标题】:selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 80selenium.common.exceptions.SessionNotCreatedException:消息:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 80
【发布时间】:2020-04-24 13:31:18
【问题描述】:

当我进入命令提示符并输入 chromedriver -v:

ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614})

但是当我尝试运行这段代码时:

from selenium import webdriver 
class InstaBot:
    def __init__(self):
        self.driver=webdriver.Chrome()
        self.driver.get("www.instagram.com")
InstaBot()

它给了我这样的错误: raise exception_class(message, screen, stacktrace)

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

为什么会发生这种情况我试图删除 selenium 以及 chromedriver 并重新安装版本 79.0.3945 但是当我运行它时,它显示这只能在版本 80 上运行 我的 chrome 版本是 79.0.3945,这是最新的,而 80 版 chrome 是 chrome beta

【问题讨论】:

  • Selenium 正在寻找不同的 chromedriver

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


【解决方案1】:

此错误消息...

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

...暗示 ChromeDriver v80.0 无法启动/生成新的浏览上下文,即 Chrome 浏览器 会话。


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

  • 您提到使用 chromedriver=79.0.3945.36 并且 chromedriver=79.0 的发行说明清楚地提到了以下内容:

支持 Chrome v79

  • 大概您使用的是 chrome v79.0 浏览器。
  • 因此,很明显您的系统中存在 chromedriver=80.0,它也在系统 PATH 变量中,并在您执行以下操作时被调用:

    self.driver=webdriver.Chrome()
    

解决方案

有两种解决方案:

  • 要么将 chrome 升级到 Chrome 版本 80.0 级别。 (根据ChromeDriver v80.0 release notes
  • 或者您可以使用 chromedriver v79.0 二进制位置覆盖默认的 chromedriver v80.0 二进制位置,如下所示:

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

您可以在Ubuntu: selenium.common.exceptions: session not created: This version of ChromeDriver only supports Chrome version 79找到详细讨论


其他注意事项

确保:

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

参考

您可以在以下位置找到相关的详细讨论:

【讨论】:

    【解决方案2】:

    在项目中使用 Bonigarcia 插件。之后它将自行管理所有驱动程序。它读取chrome版本并相应地实例化驱动程序。

    如需帮助,请关注我的帖子: https://www.linkedin.com/pulse/webdrivermanager-bonigarcia-rohan-ravi-yadav/

    或原始 git 链接/帖子 https://github.com/bonigarcia/webdrivermanager

    如果需要任何帮助,请告诉我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-03
      • 2020-09-28
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      相关资源
      最近更新 更多