#はじめに
私はPythonのSeleniumでwebサイトへのログインやサイト情報の確認を自動化しています。
その際にChromeDriverを使っています。
ところが、Chromeブラウザが定期的に自動アップデートされるので、ChromeDriverとのバージョン不一致でプログラムが止まっていることがよくあります。(ありますよね!?)
エラー処理を入れないと、数日間動いていなかったなんてことも・・・。
そこで今回はChromeDriverのバージョン不一致をLineに通知する方法を紹介したいと思います。
#環境
・python3.7
・windows10
・Chromeブラウザ
#エラー内容
日本語訳:
selenium.common.exceptions.SessionNotCreatedException:
メッセージ:セッションが作成されていません:このバージョンのChromeDriverはChromeバージョン89のみをサポートしています。
現在のブラウザバージョンは93.0.4577.63でパスは・・・なんとかかんとか。
selenium.common.exceptions.SessionNotCreatedException:
Message: session not created: This version of ChromeDriver only supports Chrome version 89 Current browser version is 93.0.4577.63 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
ChromeDriverのバージョンとChromeブラウザバージョンが不一致ってことですね。
Chromeブラウザのバージョンは自動で上がっちゃうので。確かにブラウザは最新版の方がセキュリティ的に安心。
ちなみにChromeブラウザの自動更新を停止するためには、「GoogleUpdate.exe」というファイルを削除するか、名前を変えてしまうと、その後自動更新は行われなくなるそうです。バージョン不一致はこちらでも解決できます。
私はブラウザの更新をお勧めします。
#バージョン不一致通知プログラム
import requests #←Line通知用
import sys #←強制終了用
from selenium import webdriver#←selenium
#↓try節でChromeを起動して、webスクレイピングを開始します。
try:
driver = webdriver.Chrome("c:/driver/chromedriver.exe") #←chromedriver.exeの保管場所。最新版を置くところです。
driver.get("https://www.google.co.jp")#←webスクレイピングしたいサイトのURL。サイトは例なので好きなところに書きかえてください。
#↓except節はエラーがあった場合のみ、通過します。今回はここにLine通知用のプログラムを記載しています。
except:
addmessage="ドライバエラーが発生しています" #←変更不要
line_notify_token = '*******************************************' #line_notify_tokenを発行して記載してください。
line_notify_api = 'https://notify-api.line.me/api/notify' #←変更不要
message = addmessage #←変更不要
payload = {'message':"\r\n"+ message} #←変更不要
headers = {'Authorization': 'Bearer ' + line_notify_token} #←変更不要
line_notify = requests.post(line_notify_api, data=payload, headers=headers)#←変更不要
sys.exit() #←強制終了。変更不要
#↓ドライバーエラーが発生しない場合はこの行以下を実行するので好きなコードを書いてください。
line_notify_tokenを発行方法はGoogleで検索して頂ければすぐ見つかると思います。
###ちなみにバージョン不一致のエラーを解消したい場合
まずChromeブラウザのバージョンを確認します。
1.Chromeを開く > 右上の「・・・」(設定) > [ヘルプ] > [Google Chromeについて]
今は「93.0.4577.63」ですね。
2.ChromeDriverをダウンロードする。以下のサイトにあります。
https://chromedriver.chromium.org/downloads
Topページにさっそく「Supports Chrome version 93」と記載のあるChromeDriverがありました。今回はChromeブラウザのバージョンが93なので、これでOKです。
自分が利用しているブラウザバージョンをサポートしているバージョンをダウンロードしてください。
#最後に
いかがでしたでしょうか。経験上バージョン不一致のエラーは1か月~3か月くらいの周期で発生します。今はLine通知が来たらChromeDriverを手動で入れ替えていますが、これも自動化できたらいいですね。ご参考になれば幸いです。