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 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ブラウザは定期的に自動更新されるのですが、Selenium用Chromeドライバーは自動更新されないので、手動で更新してやる必要があります。
以下のような2つのステップでエラーは解消できます。
Chromeブラウザのバージョンを確認する
まずは現状確認が必要。
ChromeブラウザをSeleniumからではなく、普通に起動してChromeブラウザ本体のバージョンを確認する。
ブラウザの右上にある「・・・(設定)」を展開して、「ヘルプ」 > 「Google Chromeについて」を開く。
すると、「バージョン: 93.0.4577.63(Official Build) (64 ビット)」のような表示が。
この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」をダウンロード。
Windows、Mac、Linuxの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;」と書きます。
まとめ
この2つをぴったり一致させる必要がある。
ブラウザのバージョンをアップデートするたびに必要になってくる作業なので、Chromeドライバーを新しいバージョンに置き換えるやり方は覚えておいたほうがいいでしょう。
このページは移転しました。