Python SeleniumでChromeを起動したらSessionNotCreatedExceptionというエラーが発生
PythonのSeleniumでChromeを起動したらエラーになりました。
昨日まで使えていたのに突然のエラー。
こういうのたまにあるので困ります。
こういうコードでChromeを起動したら
from selenium import webdriver
driver = webdriver.Chrome()
こういうエラーが出ました。
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 76
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 76 というエラーを解消する方法
「This version of ChromeDriver only supports Chrome version 76」ということなので、Chromeのバージョンがサポートされていないということなんでしょう。
そういえば最近Google Chromeブラウザーを更新した気がする。
でもChromeのバージョンアップをしたのは1週間くらい前で、昨日はSeleniumで普通に動いていたのにいまさらなぜ?
とにもかくにも、以下のような2つのステップでエラーは解消できそう。
- Chromeブラウザのバージョンを確認する
- Chromeブラウザのバージョンに合わせたChromeドライバーをインストールする
Chromeブラウザのバージョンを確認する
まずは現状確認が必要。
ChromeブラウザをSeleniumからではなく、普通に起動してChromeブラウザ本体のバージョンを確認する。

ヘルプ>Google Chromeについて
ブラウザの右上にある「・・・(設定)」を展開して、「ヘルプ」 > 「Google Chromeについて」を開く。
すると、「バージョン: 78.0.3904.87(Official Build) (64 ビット)」という表示が。
- Chromeブラウザ本体: バージョン78
- Chromeドライバー: バージョン76
この2つのバージョンが一致していないので
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 76
というエラーが出ているようだ。
Chromeドライバーをダウンロードする
ここのサイトから「ChromeDriver 78.0.3904.70」というのをダウンロードします。
2019年11月現在で、最新は「ChromeDriver 79.0.3945.16」でした。
試しに「ChromeDriver 79.0.3945.16」の方をダウンロードして使ってみましたが
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 79
というエラーが出ました。
エラーメッセージの version 76 のところが version 79 に変わっていますね。
「このChromeドライバーはversion79用だぞ」って怒られているので、
「最新のを入れておけば下位互換がある」というわけではないようです。
Chromeブラウザのバージョンが78だったら、Chromeドライバーもバージョン78を使わないといけない。
というわけで、素直に「ChromeDriver 78.0.3904.70」をダウンロードします。
「ChromeDriver 78.0.3904.70」をインストールする
「ChromeDriver 78.0.3904.70」をダウンロードするとファイル名としては「chromedriver_win32.zip」というものがダウンロードされます。
Windows、Mac、Linuxの3種類から選べるんですが、わたしの環境がWindowsなのでwin用をダウンロードしました。
そして、「chromedriver_win32.zip」を解凍すると中には「chromedriver.exe」というファイルが1つだけ入っています。
「chromedriver.exe」をダブルクリックするとインストールが始まるわけではなく、このファイル自身がChromeドライバーです。
自分のパソコンの中のどこかに「chromedriver.exe」というファイルが既に存在するはず。
古いほうの「chromedriver.exe(version76)」を見つけ出して、いまダウンロードした「chromedriver.exe(version78)」に置き換えてやればエラーは解決します。
パソコンの中を検索して頑張って見つけ出しましょう。
わたしの場合は
C:\chromedriver_win32\chromedriver.exe
というパスにありました。
パスを通す(環境変数のPathを設定する)
人によってchromedriver.exeが置いてあるパスは違うはず。
というか最初に導入するときに自分で置き場所を決めます。
インストーラが勝手にやってくれる系ではない。
C:\chromedriver_win32\chromedriver.exe
という場所にファイルを置いた場合は、
環境変数のPathというところに
C:\chromedriver_win32\chromedriver.exe;
と書き足します。
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ドライバーを新しいバージョンに置き換えるやり方は覚えておいたほうがいいでしょう。