Python+Selenium | ChromeDriver版本錯誤之升級驅動,及禁止瀏覽器自動更新
背景:
用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瀏覽器將不再自動升級。