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()))
コメント