💻

ChromeバージョンアップによるSeleniumエラーのトラブルシューティング

2023/09/21に公開

はじめに

この記事は、ChromeのバージョンアップによってSeleniumで発生する一般的なエラーとその解決手順について解説するものです。

この記事は主に自分用の備忘録として書かれており、今後同様の問題に遭遇した際にすぐに対処できるようにすることを目的としています。

環境

$ uname -a
Linux user 5.15.0-83-generic #92~20.04.1-Ubuntu SMP Mon Aug 21 14:00:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

問題の発生

  • セキュリティアップデート後にChromeがバージョンアップし、Seleniumで使用しているchromedriverが古いバージョンであるためにエラーが発生。
  • セキュリティアップデートのたびに、pip install -U chromedriver-binary-autoを行っていたが、今回はchromedriver-binary-autoのバージョンアップが間に合わず、数日に渡りエラーが発生。

エラーメッセージ

  • SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 115

解決手順

  1. Chromeのバージョン確認

    • 使用しているChromeのバージョンを確認。このケースでは、バージョン117.0.5938.88。
  2. 適切なchromedriverのダウンロード

  3. chromedriverの配置

    • ダウンロードしたchromedriverをプロジェクトのディレクトリに配置。
  4. Pythonコードの修正

    • Pythonスクリプト内でwebdriver.Chromeを呼び出す際のパスを、新しくダウンロードしたchromedriverのパスに修正。
    • 修正前
      driver = webdriver.Chrome(
          '/home/user/project_dir/lib/python3.8/site-packages/chromedriver_binary/chromedriver',
          options=options
          )
      
    • 修正後
      driver = webdriver.Chrome(
          '/home/user/project_dir/chromedriver-linux64/chromedriver',
          options=options
          )
      
  5. 実行権限の確認

    • chmod +x /path/to/chromedriverコマンドでchromedriverに実行権限を付与。
        drwxrwxr-x  2 user user     4096  921 18:31 ./
        drwxrwxr-x 12 user user     4096  921 18:33 ../
        -rw-r--r--  1 user user   250924  915 07:52 LICENSE.chromedriver
        -rwxr-xr-x  1 user user 14078720  915 07:52 chromedriver*
      
  6. スクリプトの再実行

    • Pythonスクリプトを再実行して、エラーが解消されるか確認。

まとめ

この記事では、ChromeのバージョンアップによってSeleniumで発生した具体的なエラーメッセージとその原因、そしてそれに対する解決策を1つ1つ確認していきました。
この記事が、同様の問題に直面した方の参考資料として役立てば幸いです。

Discussion