Selenium起動時にwebdriverを自動更新する方法(Python)

Python

目次

SeleniumはPythonのソースコードでGoogle ChromeやFireFoxなどのWebブラウザを制御して、
データの取得や自動クリックなどを行うことができるライブラリです。

非常に便利なライブラリなのですが、手元のGoogle Chromeのバージョンが上がってしまうと、
webdriverという内部部品もアップロードしなければなりません。

「手元のPCで、月に1回だけSeleniumを起動させたい」などといった場合には、
大体webdriverのバージョンが異なる旨の以下のエラーが発生してしまいます。

session not created: This version of ChromeDriver only supports Chrome version 92

通常のwebdriverの更新方法

このエラー、通常であれば以下の手順で、pipコマンドを用いてwebdriverを更新していきます。

旧webdriverのアンインストール

pip uninstall chromedriver-binary

その後、確認したGoogle Chromeのバージョンに合ったwebddriverをインストールします。

for /f "tokens=1" %V in ('dir /B /O-N "C:\Program Files\Google\Chrome\Application" ^|findstr "^[0-9].*" ') do pip install chromedriver-binary^<;^=%V

↓32bit版のGoogle Chromeをお使いの場合はこちらのコマンドを使用します。

for /f "tokens=1" %V in ('dir /B /O-N "C:\Program Files (x86)\Google\Chrome\Application" ^|findstr "^[0-9].*" ') do pip install chromedriver-binary^&lt;^=%V

次のコマンドを使用して、Google Chromeのwebdriverのバージョンを確認します。

pip show chromedriver-binary

手元のGoogle Chromeのバージョンは以下の通りですので、バージョンに合ったwebdriverがインストールされていることが確認できます。

ただし、月1回とはいえ、毎回こんなことをやるのは面倒臭い!

せっかくSeleniumという自動化ライブラリを使っているのに、Seleniumのメンテナンスに手間取っていては、自動化のメリットも薄まってしまいます。

今回ご紹介する方法により、Selenium起動時にwebdriverのバージョン確認&アップデートを自動で行うことができるようになります。

webdriver_managerのインストール

pipでwebdriver_managerをインストールします。

pip install webdriver_manager

そして、Pythonのソースコードの先頭に以下の用に記述します。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

あとは変数”driver”を用いて、Chromeを好きなように操作していきます。

このように記述することで、このPythonファイルを実行する度に毎回webdriverのバージョン確認が行われ、手元のGoogle Chromeのバージョンに合ったwebdriverがインストールされます。

これで、毎回の更新作業は不要になります。

まとめ

今回はSeleniumのwebdriverの自動更新の方法についてお伝えしました。
Chromeをアップデートしない環境には必要ない処理かもしれませんが、
普段使いのPCで、たまにSeleniumを使いたい時などにはおすすめです。

みなさんも是非試してみてください。

コメント

タイトルとURLをコピーしました