chromedriverとgoogle chromeのバージョン合わせ

python×selenium×chromedriverでwebスクレイピングを行う機会があり、chromedriverとgoogle chromeのバージョン合わせをすることに。chromedriverを使う際には、google chromeとバーションをうまく合わせないとエラーが吐かれるので気をつけましょう。
対処手順をみていきましょう。

互換性のないバージョンによるエラー

chromedriverとgoogle chromeのバージョンに互換性がない場合に、エラーが吐かれることがあります。
私の環境では、以下のようなエラー内容でした。

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 77

「このバージョンのChromeDriverはChrome77のみをサポートします。」だそうです。

手順1 : Chromeのバージョンを確認する

普段使いしているgoogle chromeのバージョンを確認します。
 Chromeの立ち上げ → 設定 → Chrome について(左欄の項目)と進みます。

google chromeのバージョン確認

私の環境では、バージョン79.0.3945.88であることがわかります。

手順2 : 対応するバージョンのchromedriver-binaryをインストール

まずはじめに、インストールできるchromedriver-binaryのバージョンを確認します。

$ pip install chromedriver-binary==  
ERROR: Could not find a version that satisfies the requirement chromedriver-binary== (from versions: 2.29.1, 2.31.1, 2.33.1, 2.34.0, 2.35.0, 2.35.1, 2.36.0, 2.37.0, 2.38.0, 2.39.0, 2.40.1, 2.41.0, 2.42.0, 2.43.0, 2.44.0, 2.45.0, 2.46.0, 70.0.3538.16.0, 70.0.3538.67.0, 70.0.3538.97.0, 71.0.3578.30.0, 71.0.3578.33.0, 71.0.3578.80.0, 71.0.3578.137.0, 72.0.3626.7.0, 72.0.3626.69.0, 73.0.3683.20.0, 73.0.3683.68.0, 74.0.3729.6.0, 75.0.3770.8.0, 75.0.3770.90.0, 75.0.3770.140.0, 76.0.3809.12.0, 76.0.3809.25.0, 76.0.3809.68.0, 76.0.3809.126.0, 77.0.3865.10.0, 77.0.3865.40.0, 78.0.3904.11.0, 78.0.3904.70.0, 78.0.3904.105.0, 79.0.3945.16.0, 79.0.3945.36.0)
ERROR: No matching distribution found for chromedriver-binary==

上記コマンドで、インストールできるバーションのリストを出力します。
==以降には本来chromedriverのバージョンが入るのですが、わざと空欄にしてエラーを吐かせます。

手順1でGoogle chromeのバージョンが79だったので、chromedriver-binaryの方も79.XXXXのものを入れます。リストから、79系の最新バージョンをインストールしてみます。

$ pip install chromedriver-binary==79.0.3945.36.0

ここまで正しく手順を踏めていれば、無事seleniumでchromedriverが使えるようになっているでしょう。うまくいきましたか。

google chromeは時々アップデートをすることがあると思うので、この手順は頭の片隅に置いておくと良いかもしれません。
以上、chromedriverとgoogle chromeのバージョンを合わせる手順についてでした。