GoogleChromeが勝手に自動アップデートされてSelenium処理が失敗することの対処策(自動アップデート停止方法)|備忘録

夜はだいぶ涼しくなってきて、いよいよ夏の終わりと秋の始まりを
感じるような季節になってきましたね。

コロナ禍による私生活の大きな変化が起こってから久しいですが、
皆様いかがお過ごしでしょうか。

今回は、Selenium を使った自動スクレイピングツールが
失敗してしまう事象があったので、その事象内容の詳細と
対応策を備忘録として記載しておこうと思います。

スポンサーリンク

事象の詳細

僕自身の趣味の一環として、
Python と Selenium を使ってウェブスクレイピングするツールを作成し、
自宅の PC で毎日定期実行させていました。

ところが先日、なんかツールの動作がおかしい?と思い、
ツールが吐いているログを見てみたところ、以下のようなエラーが数日間出続けていました。。。
(自作ツールとはいえ、しっかりと定期的に動作確認しておかないと駄目ですね。反省です。)

内容を調べたところでは、Selenium で呼び出すはずの GoogleChrome と、
Selenium WebDriver とのバージョンに差異があることで発生するエラー
でした。

対応策としては、Chrome のバージョンを下げるか、
ChromeDriver のバージョンを上げるか のどちらかです。



ただ、どうも GoogleChrome のバージョン自動アップデートや
ダウングレードは、ユーザー設定画面からは対応できない
ようでしたので、
対応策としてはChromeDriver のバージョンアップ一択ということですね。

スポンサーリンク

ChromeDriver のバージョンアップ

とりあえずの解決策として、ChromeDriver のバージョンアップを行いました。

ChromeDriver のバージョンアップについては、何も難しいことはありません。
以下のサイトから、使用している GoogleChrome に対応した
ChromeDriver をダウンロードしてきて、Python プログラムが呼び出せるパスに配置してあげればよいです。

GoogleDriver ダウンロードページ

スポンサーリンク

根本的な解決策(GoogleChromeの自動アップデート停止)

そもそも今回のエラーが発生した原因ですが、
『Python プログラム作成当初は一致していた GoogleChrome と ChromeDriver のバージョンが、
GoogleChrome の自動アップデート機能によってバージョン差異が出てしまった』
ことにあります。

そのため、もし今回 ChromeDriver のバージョンをアップしたとしても、
数週間から数か月後には、GoogleChrome の自動アップデートが入り、
また ChromeDriver とバージョン差分が出てきてしまいます。

その度に ChromeDriver をダウンロードしてくるのはかなり面倒です。



というわけで、根本的に GoogleChrome の自動バージョンアップを
停止させてしまうことにしました。

かなり簡単な方法なので、同様の事象でお困りの方は試してみてください。
(セキュリティ上のリスクもあることを念頭に置き、自己責任にて行ってくださいね)

GoogleChrome の自動バージョンアップを停止する

GoogleChrome では、
ローカルディスク(C)>Program Files(x86)>Google>Update
配下にある 「GoogleUpdate.exe」というファイル削除またはリネームすることで、
自動アップデートを行わなくできます。

「GoogleUpdate.exe」を削除してしまうと、今後アップデートできなくなってしまうため、
今回はファイルをリネームする方針としました。



以下、リネーム前後の様子です。

【リネーム前】
ファイルリネーム前



【リネーム後】
ファイルリネーム後

これでGoogle Chrome の自動アップデートは停止されました。

GoogleChrome の自動バージョンアップ停止を確認する

ここまで実施したら、GoogleChrome を起動し、ユーザー設定メニューから
GoogleChrome のバージョン確認画面を見てみます。

下図のようにエラーになれば、自動アップデートが停止(失敗)しています。
Chromeバージョン確認

Chromeバージョン確認失敗

確認は以上です。

最後に

上述の通り、GoogleChrome は、ユーザー設定画面からは
自動アップデートの停止設定とかは行えないのですが、
セキュリティ上のリスクを低減するためとは言え、Chrome をツールやテストで
使用することが多い人間にとっては、結構不便に感じました。

ここら辺、Chrome のアップデートを検知して、それに対応する
ChromeDriver を自動ダウンロードしてくれるツールとか作成できれば格好いいですね。

今後時間があるときに挑戦してみようと思います。



今回この記事を作成するにあたり、以下のページを参考にさせていただきました。
ありがとうございました。

Windows10 Google Chrome の自動更新を停止し勝手にアップデートしないようにする方法

コメント