1日1分 かんたんTOEIC リスニング対策部

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

この記事は約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 89
Current browser version is 91.0.4472.77

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

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

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

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

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

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

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

ヘルプ>Google Chromeについて

ヘルプ>Google Chromeについて

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

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

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

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

session not created: This version of ChromeDriver only supports Chrome version 89 Current browser version is 91.0.4472.77

というエラーが出ます。

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

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

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

試しに「ChromeDriver 92.0.3945.16」の方をダウンロードして使ってみましたが

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

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

エラーメッセージの version 89 のところが version 92 に変わっていますね。

「このChromeドライバーはversion92用だぞ」って怒られているので、
「最新のを入れておけば下位互換がある」というわけではないようです。

Chromeブラウザのバージョンが91だったら、Chromeドライバーもバージョン91を使わないといけません。

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

「ChromeDriver 91.0.4472.19」をダウンロードするとファイル名としては「chromedriver_win32.zip」というものがダウンロードします。

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

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

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

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

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

わたしの場合は

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をコピーしました