session not created: This version of ChromeDriver only supports Chrome version 107 Current browser version is 109.0.5414.75 というエラーを解消する方法

この記事は約6分で読めます。

Python SeleniumでChromeを起動したらSessionNotCreatedExceptionというエラーが発生

PythonのSeleniumでChromeを起動したらエラーになりました。
昨日まで使えていたのに突然のエラー。

こういうコードでChromeを起動したら

from selenium import webdriver
driver = webdriver.Chrome()

こういうエラーが出ました。

session not created: This version of ChromeDriver only supports Chrome version 107
Current browser version is 109.0.5414.75

session not created: This version of ChromeDriver only supports Chrome version 107 Current browser version is 109.0.5414.75 というエラーを解消する方法

「This version of ChromeDriver only supports Chrome version 107」ということなので、Chromeのバージョンがサポートされていません。

Chromeブラウザを更新すると、Seleniumで使っているChromeドライバーのバージョンとChrome本体のバージョンに差異が発生します。
Chromeブラウザは定期的に自動更新されるのですが、Selenium用Chromeドライバーは自動更新されないので、手動で更新してやる必要があります。

以下のような2つのステップでエラーは解消できます。

  1. Chromeブラウザのバージョンを確認する
  2. Chromeブラウザのバージョンに合わせたChromeドライバーをインストールする

Chromeブラウザのバージョンを確認する

まずは現状確認が必要。
ChromeブラウザをSeleniumからではなく、普通に起動してChromeブラウザ本体のバージョンを確認する。

ヘルプ>Google Chromeについて

ヘルプ>Google Chromeについて

ブラウザの右上にある「・・・(設定)」を展開して、「ヘルプ」 > 「Google Chromeについて」を開く。

すると、「バージョン: 109.0.5414.75(Official Build) (64 ビット)」のような表示が。

  • Chromeブラウザ本体: バージョン 109
  • Chromeドライバー: バージョン 107

この2つのバージョンが一致していないので

session not created: This version of ChromeDriver only supports Chrome version 107 Current browser version is 109.0.5414.75

というエラーが出ます。

Chromeドライバーをダウンロードする

ここのサイトから「ChromeDriver 109.0.5414.75」というのをダウンロードします。
(Chromeブラウザ本体のバージョン109.0.5414.75なら109.x.xxxx.xxを選ぶ)

x.xxxx.xxの部分は微妙に違っていてもOK。

ドライバーをブラウザよりも上位のバージョンにするのもダメです。
Chromeドライバーに後方互換はありません。
Chromeブラウザ本体のバージョンが109だったら、Chromeドライバーのバージョンもちょうど109を使います。

「ChromeDriver 109.0.5414.75」をインストールする

「ChromeDriver 109.0.5414.75」から「chromedriver_win32.zip」をダウンロード。

Windows、Mac、Linuxの3種類から選べるんですが、わたしの環境がWindowsなのでwin用をダウンロードしました。

そして、「chromedriver_win32.zip」を解凍すると中には「chromedriver.exe」というファイルが1つだけ入っています。

「chromedriver.exe」をダブルクリックするとインストールが始まるわけではなく、このファイル自身がChromeドライバーです。

自分のパソコンの中のどこかに「chromedriver.exe」というファイルが既に存在するはず。
古いほうの「chromedriver.exe」(version 107)を見つけ出して、いまダウンロードした「chromedriver.exe」(version 109)に置き換えてやればエラーは解決します。

パソコンの中を検索して頑張って見つけ出しましょう。

わたしの場合は

C:\chromedriver_win32\chromedriver.exe

というパスにありました。

パスを通す(環境変数のPathを設定する)

人によってchromedriver.exeが置いてあるパスは違うはず。

というか最初に導入するときに自分で置き場所を決めます。
インストーラが勝手にやってくれる系ではない。

C:\chromedriver_win32\chromedriver.exe

という場所にファイルを置いた場合は、

環境変数のPathというところに

C:\chromedriver_win32\chromedriver.exe;

と書き足します。

Pathのところには既にいろんな設定が書き込まれている状態なので、元々ある文字の後ろに書き足します。
元の文字を消してしまうといろんなソフトが動かなくなるので注意。

環境変数Path

環境変数Path

環境変数のPathというのは「~~にファイルを置きました」という設定です。

もし「C:\Chrome\chromedriver.exe」という場所にファイルを置いたら、環境変数のPathにも同じく「C:\Chrome\chromedriver.exe;」と書きます。

もし「C:\aiueo\chromedriver.exe」という場所にファイルを置いたら、環境変数のPathにも同じく「C:\aiueo\chromedriver.exe;」と書きます。

まとめ

PythonのSeleniumでChromeを起動するには

  • Chromeブラウザのバージョン
  • Chromeドライバーのバージョン

この2つをぴったり一致させる必要がある。

ブラウザのバージョンをアップデートするたびに必要になってくる作業なので、Chromeドライバーを新しいバージョンに置き換えるやり方は覚えておいたほうがいいでしょう。

コメント

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