SeleniumでChromeバージョンに合わせたChromeDriverを自動的にインストールする

ALL
スポンサーリンク

SeleniumでChromeを使用する場合は、Chromeバージョンに合わせたChromeDriverが必要です。
合っていないと Selenium使用時に次のようなエラーが出て、動作できません。
そこで、Chromeバージョンに合わせた ChromeDriverを、Selenium使用時に自動的にインストールして、Seleniumスクリプトの動作を続行させる方法です。

The chromedriver version (122.0.6261.94) detected in PATH at /home/testuser/.local/lib/python3.8/site-packages/chromedriver_binary/chromedriver might not be compatible with the detected chrome version (124.0.6367.60); currently, chromedriver 124.0.6367.78 is recommended for chrome 124.*, so it is advised to delete the driver in PATH and retry

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 122
Current browser version is 124.0.6367.60 with binary path /usr/bin/google-chrome

Webdriver Manager をインストールします。

pip3 install webdriver_manager

動作確認をします。

下記コードを test.py とし、python3 test.py を実行してください。
実行後、何もエラーが出なかったら(何も表示が出なかったら)OKです。

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

options = Options()
options.add_argument('--headless')
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()),options=options)

実行で次のようなエラーが出る場合は、pip3 install --upgrade requests を実行後、再度 python3 test.py を実行してください。

/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (2.1.0) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

後は、Seleniumスクリプトで下記のように実行すると、ChromeとChromeDriverのバージョンが合っていなければ適切なChromeDriverがダウンロードしてインストールされます。

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

参考

webdriver_managerで自動的にSeleniumとChromeバージョンを一致させる

コメント