ブラウザでのテストだけではなく、ちょっとしたブラウザ操作の自動化にもSeleniumを利用するのですが、久しぶりに起動すると、各ブラウザのDriverが古くでエラーになる、、みたいなことが多々発生していました。
今更ながら、他の方々はどうやってこの問題を解決しているのだろうと調べてみたら、WebDriverManagerというとても便利なものがあることを知りました。
WebDriverManagerは、下記のようなコードを書くだけで、、
WebDriverManager.chromedriver().setup();
- PCにインストールされているブラウザのバージョンをチェック。
- バージョンと一致するDriverをダウンロード。ローカルにキャッシュするので、2回目以降はキャッシュが利用される。
- そのDriverを実行するのに必要なシステム変数(
webdriver.chrome.driver
とか)を設定。
といったことをやってくれます。これを使えば、自分でいちいち最新のDriverをダウンロードしてくるといったことをする必要はありません。
個人のプロダクトでSelenium使っているものは、全部WebDriverManagerに置き換えました。
サンプルとしてRedmineに対してのテストをGradleプロジェクトとして書いているので、気になる方はぜひ。