前提
業務でしばしば自動テストを作成。
OSは Windows 10 Pro を使用。
Chromeがアップデートされる度に、バージョンに合わせたchromedriver.exeを引っ張ってくるのが面倒だった。
しかし、 Selenium をアップロードしてからこの心配がなくなった。
どうやら Selenium 4.6.0 以降で Selenium Manager が同時インストールされるらしい。
使用中の Chrome のバージョンに合わせた chromedriver.exe を自動で用意してくれるらしい。
便利ですね。
起動時の記述も変わってパスの指定が不要になった。
# アップデート前
driver = webdriver.Chrome(driverPath)
# アップデート後
driver = webdriver.Chrome()
パスを指定していることによるエラーが出てちょっと焦った。
何が起こってどうしたのか
経緯
ちょっとの間使用していなかったが、運用中の自動テストについて改修依頼が来たので動かしてみたらエラーが出た。
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 116.0.5845.141 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
はいはい、バージョン違いね。
あれ?
自動で取ってきてくれるんじゃなかったっけ?
まいっか、取りに行こう。
最新バージョンを取りに行った
さて最新バージョンは、と。
116系ないじゃん……
さて、どうしようかね
ちょっと調べてみた
Chrome for Testingというのがあるのか。
おぉ、116系ありますね。
ありがたやありがたや。
どこ置きゃ良いんだ?
解凍したは良いものの、設置先が判らない。
Selenium Manager さんに任せきりだったしね。
とりあえず find してみますか。
find /c/Users/aokym/ -name "chromedriver.exe"
/c/Users/aokym/.cache/selenium/chromedriver/win32/112.0.5615.49/chromedriver.exe
/c/Users/aokym/.cache/selenium/chromedriver/win32/114.0.5735.90/chromedriver.exe
出てきましたね。
これに並べりゃ何とかなるっしょ。
知らんけど。
ということでフォルダ作成&解答したファイルの移動
mkdir /c/Users/aokym/.cache/selenium/chromedriver/win32/116.0.5845.96
mv ~/Downloads/chromedriver.exe /c/Users/aokym/.cache/selenium/chromedriver/win32/116.0.5845.96/chromedriver.exe
動かしてみる
It worked.
エラーも出てないし、雑な思い付きの割には上々な結果でしょう。
Selenium Manager さんは ChromeDriver さんのとこを見てるのかしらね。
時間が経てば解決するものだとは思うけど、同様の事例で参考になると良いな。