目次
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^<^=%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を使いたい時などにはおすすめです。
みなさんも是非試してみてください。
コメント