ChromeDriver 利用中のChromeのバージョンに合わせ変更する

Pocket

【この記事を読むのに必要な時間は約 5 分です】

Python+Seleniumの環境を整える上で、必要となるのが ChromeDriver です。今回、webdriver.Chrome() の実行時に原因不明のエラーが発生したのでその対処方法を記録しておきます。

webdriver.Chrome() 実行時にエラーが発生する

今回発生したエラーは以下の通りで、webdriver.Chrome()  の実行時に不明なエラーが発生した、とあります。

selenium.common.exceptions.SessionNotCreatedException: Message: session not created exception
from unknown error: Runtime.evaluate missing 'wasThrown'
  (Session info: chrome=81.0.4044.129)
  (Driver info: chromedriver=2.23.409710 (0c4084804897ac45b5ff65a690ec6583b97225c0),platform=Mac OS X 10.14.4 x86_64)

これだけでは意味のないメッセージなのですが、わざわざ利用している Chromeと ChromeDriver のバージョンを記載してくれたので、バージョンの差異によるものだろうと推測できました。

ChromeDriver の差し替えはいくつか方法があるのですが、一番かんたんな方法は以下のコマンドからインストールすることです。

#pip install chromedriver-binary

ただし、この方法だと Python 実行時にしか利用できないことに注意してください。Python 実行環境以外でも利用するのであればファイルをダウンロードしてきてパスを通す必要があります。

上記を実行すると、以下のように最新版のドライバーがインストールされます。

Collecting chromedriver-binary
  Downloading chromedriver-binary-83.0.4103.14.0.tar.gz (3.4 kB)
Installing collected packages: chromedriver-binary
    Running setup.py install for chromedriver-binary ... done
Successfully installed chromedriver-binary-83.0.4103.14.0

これだけでは、インストールしたドライバーを利用してくれないので以下をコード内に追記します。

import chromedriver_binary

実行し直すと、またエラーになりましたが今回は ChromeDriver がサポートするバージョンは 83 のみだと、はっきりとエラーの原因を出力してくれるようになりました。

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 83

バージョンを指定して ChromeDriver インストールのやり直し

Chrome 81 に対応している ChromeDriver が必要なことが分かったので、以下からリリース済みのバージョンを確認します。

http://chromedriver.chromium.org/downloads

If you are using Chrome version 81, please download ChromeDriver 81.0.4044.69

バージョンを指定してインストールします。

pip install chromedriver-binary==81.0.4044.69
Installing collected packages: chromedriver-binary
  Attempting uninstall: chromedriver-binary
    Found existing installation: chromedriver-binary 83.0.4103.14.0
    ninstalling chromedriver-binary-83.0.4103.14.0:
      Successfully uninstalled chromedriver-binary-83.0.4103.14.0
    Running setup.py install for chromedriver-binary ... done
Successfully installed chromedriver-binary-81.0.4044.69.0

これで実行時にエラーは起きなくなりました。Chrome のバージョンが代わる都度、インストールを行う必要があるのでその対応はまた考えたいと思います。

コメントを残す

メールアドレスが公開されることはありません。