BLOGTIMES
» ArchiveList (Tag for "sh / java" )
«Prev || 1 · | Next»
2019/04/30

webdrivermanager で ChromeDriver を自動アップデート

selenium  sh  java 

久しぶりに selenium のスクリプトを起動しようとしたら、以下のような例外を吐いて起動しなくて困ってしまいました。

File "/home/hoge/.pyenv/versions/3.7.2/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73 (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Linux 4.15.0-46-generic x86_64)

エラーメッセージを読む限り、ChromeDriver と Chrome のバージョンが合っていないというエラーのようです。

以前書いたとおり Chrome は apt を使って導入しているので、定期的にバージョンアップされます。
ところが、ChromeDriver は手動インストールなので、これらのバージョンがズレてしまうというのが問題の根本的な原因です。

エラーが出てから対処するというのでも良いのですが、やはりこういうのは未然に防ぎたいもの。
というわけで、自動的に ChromeDriver を更新するための良い方法がないかと思って探してみたら、webdrivermanager というプロジェクトを見つけました。

webdrivermanager はインストールされているブラウザのバージョンに合わせた Selenium 用のバイナリドライバを自動的にダウンロードしてくれるという java のプログラムです。Maven などに組み込んで動かすのが一般的なようですが、今回は単純にコマンドラインから起動して /usr/local/bin/chromedriver を更新するようなスクリプトを組んでみました。無駄な動きがないように、インストールされた Chrome のバージョンをファイルで覚えておいて、バージョンアップされている場合にのみ動作するようにしてあります。


    at 16:41 |
    «Prev || 1 · | Next»
    » ArchiveList (Tag for "sh / java" )