Table of Contents
はじめに
selenium で Chrome を使っている人は多いと思いますが、誰しもがめんどくさいと思うのが
chromedriver と Chrome のバージョンを都度一致させること。
今回そのめんどくささを解消してくれる chromedriver-binary-auto というライブラリがある
ということで早速使ってみました。
内容
- まずは Chrome をインストール
-
Windows の場合
Google Chromeからインストール -
Ubuntu の場合
# リポジトリの追加$ sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
# 公開鍵の登録$ sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
# パッケージリストの更新$ sudo apt update
# インストール$ sudo apt install google-chrome-stable
- chromedriver-binary-auto をインストール python-chromedriver-binaryに従う
# 初回のインストール$ pip install chromedriver-binary-auto
# アップデート# Chrome側でアップデートがあったときの対応$ pip install --upgrade --force-reinstall chromedriver-binary-auto
- コードの使用例
from selenium import webdriverimport chromedriver_binary
driver = webdriver.Chrome()driver.get("http://www.python.org")
トラブルシューティング
バージョン不整合エラーが発生した場合
Chrome が自動アップデートされた際に、以下のようなエラーが発生することがあります。
The chromedriver version (134.0.6998.90) detected in PATH at /path/to/chromedriver might not be compatible with the detected chrome version (138.0.7204.183); currently, chromedriver 138.0.7204.183 is recommended for chrome 138.*, so it is advised to delete the driver in PATH and retry
解決方法: 手動でChromedriverを削除
エラーメッセージに表示されたパスのchromedriverファイルを手動で削除します。
# エラーメッセージのパスを確認して削除$ rm /path/to/env/lib/python3.10/site-packages/chromedriver_binary/chromedriver
その後、Pythonコードを再実行すると、適切なバージョンのchromedriverが自動的にダウンロードされます。