にゃん分間待ってやる

「文章の書き方」や「アクセスアップ」などブログ運営のテクニックを解説。

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

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

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

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

from selenium import webdriver
driver = webdriver.Chrome()

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

session not created: This version of ChromeDriver only supports Chrome version 91
Current browser version is 93.0.4577.63

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

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

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

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

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

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

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

ヘルプ>Google Chromeについて

ヘルプ>Google Chromeについて

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

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

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

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

session not created: This version of ChromeDriver only supports Chrome version 91 Current browser version is 93.0.4577.63

というエラーが出ます。

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

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

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

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

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

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

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

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

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

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

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

わたしの場合は

C:\chromedriver_win32\chromedriver.exe

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

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

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

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

C:\chromedriver_win32\chromedriver.exe

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

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

C:\chromedriver_win32\chromedriver.exe;

と書き足します。

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

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

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

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

まとめ

PythonSeleniumChromeを起動するには

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

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

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

このページは移転しました。