背景:
用python + selenium寫的UI自動化代碼,原來可運行,今天運行突然報如下的錯:
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 89
Current browser version is 91.0.4472.77 with binary path
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
原因分析:
報錯的原因是ChromeDriver的版本跟Chrome瀏覽器的版本不一致了,原來Chrome瀏覽器設置了自動更新,但是ChromeDriver沒更新。
如何解決:
大體思路是:
1、安裝目前瀏覽器版本的ChromeDriver
2、禁止chrome瀏覽器自動升級(通過禁用更新服務)
具體步驟如下:
1、安裝目前瀏覽器版本對應的ChromeDriver
有兩個下載地址:
1)http://chromedriver.storage.googleapis.com/index.html
2)https://npm.taobao.org/mirrors/chromedriver/
例如,我的Chrome瀏覽器版本是91.0.4472,
接下來,下載對應版本:
2、安裝和配置
將壓縮包中的chromedriver.exe復制到原存放ChromeDriver的路徑(其他路徑也可用):
確認下,環境變量中用戶變量中PATH的配置,是否ok:
(如果是將chromedriver.exe放在其他路徑的,把對應路徑添加到PATH即可。)
完成后,在cmd下輸入chromedriver驗證是否安裝成功:
3、升級chromedriver.exe后,驗證執行是否報錯
1 from selenium import webdriver 2 import time 3 4 driver = webdriver.Chrome() 5 driver.get('https://www.baidu.com') 6 time.sleep(1)
(筆者已用實際代碼,驗證可用,以上是樣例。)
4、禁止Chrome瀏覽器自動升級(通過禁用更新服務)
Win10操作系統,此電腦-管理-服務和應用程序-服務:
在右側服務中,找到“Google更新服務(Gupdate)"與“Google更新服務(Gupdatem)”
禁用這兩項服務:
重啟電腦后,Chrome瀏覽器將不再自動升級。