【问题标题】:selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73 with ChromeDriverselenium.common.exceptions.SessionNotCreatedException:消息:会话未创建:Chrome 版本必须在 70 到 73 之间,使用 ChromeDriver
【发布时间】:2019-01-22 06:00:13
【问题描述】:

我正在尝试使用 Selenium 创建一个 webcrawler,但是当我尝试创建 webdriver 对象时出现此错误。

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73
(Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 6.1.7601 SP1 x86_64)

我下载了需要 Chrome 70-73 的最新版 chromedriver (2.45)。我当前的 Chrome 版本是 68.0.3440.106 (Official Build) (64-bit),这是最新的。我尝试下载“旧”chrome version (71),当我尝试安装它时,安装程​​序显示我已经安装了更新版本。

似乎没有任何以前的 Chromedriver 版本可供下载,尽管网站上说有。我找不到他们。

我不太明白 71 版怎么比 68 旧?

是否有比 68 更新的 Chrome 版本实际可用,或者我可以在 Chrome 68 中使用旧版本的 chromedriver?

还有人有其他建议吗?

这是我要执行的代码:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
user = 'XXXXXXX'
pwd = 'XXXXXXX'
chromedriver = "...\...\...\chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver) # Error occurs at this line
driver.get("http://www.facebook.com")
assert "Facebook" in driver.title
time.sleep(5) # So i can see something!
elem = driver.find_element_by_id("email")
elem.send_keys(user)
time.sleep(5) # So i can see something!
elem = driver.find_element_by_id("pass")
elem.send_keys(pwd)
time.sleep(5) # So i can see something!
elem.send_keys(Keys.RETURN)
driver.close()

【问题讨论】:

    标签: python-3.x google-chrome selenium-webdriver webdriver selenium-chromedriver


    【解决方案1】:

    对我来说,升级驱动程序就可以了。运行:

    brew cask upgrade chromedriver
    

    然后尝试再次运行您的测试。希望对您有所帮助!

    【讨论】:

    • 我不得不做brew cask reinstall chromedriver
    • 请添加更多信息什么是 brew 以及要使用它,对于 Windows 用户来说,这个解决方案是否适用于主题。谢谢
    【解决方案2】:

    你可以找到旧版本的chrome驱动here

    我认为从官方渠道以外的来源安装 chrome 不是一个好主意,并且安装相同的来源可能会导致问题。查看您的 PC 中是否正在运行 google 更新服务。这将自动将 chrome 版本更新为最新版本。我的运行版本 71.0.3578.98(官方构建)(64 位)。

    【讨论】:

      【解决方案3】:

      此错误消息...

      selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73
      (Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 6.1.7601 SP1 x86_64)
      

      ...暗示 Chrome 版本必须在 70 到 73 之间


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

      • 您正在使用 chromedriver=2.45
      • chromedriver=2.45 的发行说明明确提及以下内容:

      支持 Chrome v70-72

      • 您正在使用 chrome=68.0
      • ChromeDriver v2.41 的发行说明明确提及以下内容:

      支持 Chrome v67-69

      所以 ChromeDriver v2.45Chrome 浏览器 v68.0

      之间存在明显的不匹配

      解决方案


      另类

      不知何故,我觉得您的系统中安装了 2 个版本的 Chrome 浏览器。如果是这种情况,您需要在程序中提及 Chrome 二进制文件的绝对位置,您可以使用以下解决方案:

      • 代码块:

        from selenium import webdriver
        from selenium.webdriver.chrome.options import Options
        options = Options()
        options.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"
        driver = webdriver.Chrome(chrome_options=options, executable_path="C:/Utility/BrowserDrivers/chromedriver.exe", )
        driver.get('http://google.com/')
        
      • 您可以在Set chrome browser binary through chromedriver in Python找到详细讨论

      注意:您可以在Session not created exception: Chrome version must be >= x.y.z when using Selenium Webdriver with Chrome找到相关讨论


      参考

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

      【讨论】:

        【解决方案4】:

        有两种方法可以解决此问题:

        1.如果您的 Chrome 版本未更新 -> 更新它

        步骤: 1. 转到帮助 -> 关于 Google Chrome -> Chrome 会自动查找更新(将 Chrome 更新到最新版本)

        2。如果您的 chrome 版本已经是最新的 -> 那么您需要升级您的 chrome 驱动程序版本

        这里是链接:http://chromedriver.chromium.org/downloads

        【讨论】:

          【解决方案5】:

          我遇到了同样的问题。我尝试安装 Chrome 的降级版本(当前稳定版为 74,驱动程序所需的 chrome 版本必须在 70-73 之间)但我无法这样做。

          我找到了另一种方法。 This link 会告诉你哪个版本与你当前的 google-chrome 兼容(要知道你的版本,命令是 google-chrome --version

          This link 将指导您如何使用 zip 文件安装 chrome 驱动程序。命令是:

          cd
          wget <URL to zip file>
          unzip chromedriver_linux64.zip
          sudo mv chromedriver /usr/bin/chromedriver
          sudo chown root:root /usr/bin/chromedriver
          sudo chmod +x /usr/bin/chromedriver
          

          如果错误出现No such file or directory: '/usr/lib/chromium-browser/chromedriver' 或者同样的错误仍然存​​在

          使用路径/usr/lib/chromium-browser/chromedriver 而不是/usr/bin/chromedriver 重复上述过程

          对我来说,google-chrome 版本 74 与 ChromeDriver 版本 73 一起使用

          【讨论】:

            【解决方案6】:

            如果你在这里结束并且你正在使用 Laravel / Dusk,试试:

            php artisan dusk:chrome-driver
            

            【讨论】:

            • 指定你要安装的版本,本例为php artisan dusk:chrome-driver 71
            【解决方案7】:

            您的 chrome 版本非常旧。版本 68 不是最新版本。对于所有操作系统,Chrome 目前的版本为 71+。请查看列表here

            或者,this 是下载旧版本的链接。

            【讨论】:

              【解决方案8】:

              总结:

              • 查找您的 chrome 版本(帮助->关于 Google Chrome
              • 找到您的 chromedriver 版本(如果您已经有的话)。 (对我来说,“chromedriver.exe -v”给了我 Windows 环境下的版本。)
              • 访问官方 chrome webdriver 页面 (http://chromedriver.chromium.org/downloads)
              • 从上述下载位置下载与您的 chrome 浏览器版本匹配的 chromedriver。
              • 浏览此下载页面上的发行说明,了解页面下方的部分,其中清楚地说明了哪个驱动程序适用于哪个版本的浏览器。
              • 可以将下载的chromedriver二进制文件放到path环境中。

              给你。万事如意!

              【讨论】:

                【解决方案9】:

                只需从here 下载 chromedriver 扩展 2.8 或 2.9。

                解压并将这个扩展添加到/usr/local/bin

                【讨论】:

                  【解决方案10】:

                  由于 chromedriver 和 chrome 版本不匹配,我遇到了这个问题。我按照以下步骤解决了我的问题:

                  1) First, find out which version of Chrome you are using. My Chrome version was 77.0.3865.90.
                  2) Take the Chrome version number, remove the last part, and append the result to URL "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_". For example, with Chrome version 77.0.3865.90, you'd get a URL "https://chromedriver.storage.googleapis.com/LATEST_RELEASE_77.0.3865".
                  3) Use the URL created in the last step to retrieve the version of ChromeDriver to use. For example, the above URL will get your a file containing "77.0.3865.40". (The actual number may change in the future, of course.)
                  4) I then did :
                    webdriverdownloader chrome:77.0.3865.40 on my mac terminal.
                  

                  在此之后,您的 Chrome 驱动程序和 Chrome 版本必须同步,并且问题应该得到解决。

                  【讨论】:

                    【解决方案11】:

                    您必须匹配 chromedriver 版本号和您的网络浏览器 chrome 版本, 如果两个版本都匹配,那么最好。

                    > 例如 - 1-您的网络浏览器 chrome 版本是 77(用于检查您的网络浏览器 chrome 版本 得到你的网络浏览器帮助,然后你会发现关于谷歌浏览器 您的网络浏览器 chrome 版本)。 2- 现在从https://chromedriver.chromium.org/downloads 下载相同版本的77 chromedriver。 3-将谷歌浏览器设为您的默认网络浏览器。 全部做完 。 您的代码将运行良好。

                    from selenium import webdriver
                    
                    driver=webdriver.Chrome("chromedriver.exe")
                    
                    # Below line of code provide
                    driver.get('http://python.org')
                    
                    html_doc=driver.page_source
                    
                    print("Html code of http://python.org web page :",html_doc)
                    

                    【讨论】:

                      猜你喜欢
                      • 2019-08-12
                      • 1970-01-01
                      • 2020-04-24
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2020-03-29
                      相关资源
                      最近更新 更多