簡體   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