アップデートすることで解決するようになりました。
Pythonでselenium、webdriver_managerを利用した自動操作プログラムにて
以下のエラーが発生するようになりました。
ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/115.0.5790/chromedriver_win32.zip
上記のエラーを解消するための対応方法を紹介します。
環境
・Windows 11 Pro
・Chrome バージョン: 115.0.5790.99(Official Build) (64 ビット)
・Python 3.9.5 64-bit
・webdriver-manager-3.8.5
エラーの原因
ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/115.0.5790/chromedriver_win32.zip
上記のエラーが発生している場合、以下のようにエラーとなります。
1.chrome driverを自動で取得してくれるwebdriver managerが、
PCのChromeのバージョンを判定し「115.0.5790」のchrome driverを
ダウンロードしようとします。
2.リンク先の「https://chromedriver.storage.googleapis.com/」にまだ
最新版のchrome driverの設定が行われておらず、
ダウンロードする際にエラーとなります。
※マイナーバージョンアップではすぐに更新されるようですが、
今回「114→115」へのバージョンアップだったため、対応が普段より遅いようです。
対処方法1
Chrome Driverのダウンロード
1.エクスプローラーにて「%USERPROFILE%.wdm\drivers\chromedriver\win32」を開きます。
2.「https://googlechromelabs.github.io/chrome-for-testing/」にアクセスします。
3.環境に対応したバージョンのdriverをダウンロードします。
例:今回はChromeのバージョンが「115.0.5790」のため、
「https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/115.0.5790.98/win64/chromedriver-win64.zip」をダウンロードします。
4.ダウンロードしたファイルを「%USERPROFILE%.wdm\drivers\chromedriver\win32」に解凍します。
5.解凍したフォルダ名を「115.0.5790」に変更します。
driver.jsonの設定
1.エクスプローラーにて「%USERPROFILE%.wdm」を開きます。
2.「%USERPROFILE%.wdm」にある「drivers.json」をテキストエディタで開きます。
3.以下のように設定情報を追加します。
{
"win32_chromedriver_114.0.5735_for_114.0.5735": {
"timestamp": "20/07/2023",
"binary_path": "C:\\Users\\user\\.wdm\\drivers\\chromedriver\\win32\\114.0.5735\\chromedriver.exe"
},
"win32_chromedriver_115.0.5790_for_115.0.5790": {
"timestamp": "20/07/2023",
"binary_path": "C:\\Users\\user\\.wdm\\drivers\\chromedriver\\win32\\115.0.5790\\chromedriver.exe"
}
}
※直前のバージョンをコピペし、「115.0.5790」用の設定を記述します。
※「"binary_path": "C:\\Users\\user
~~」の部分は各環境に合わせてください。
※「“timestamp”: “20/07/2023”,」の日付が実行日より過去日だとダウンロードする判定となるようです。そのため「“timestamp”: “20/07/2099”,」のように未来日にしておけばダウンロードされません。
4.上記の設定を行うことで、webdriver managerが最新のdriverが入っていると判定するようになり、
ダウンロードでエラーが発生することなくseleniumを起動できます。
対処方法2
1.Chromeのバージョンをダウングレードします。
Chrome Enterprise and Education ヘルプ
2.Chromeの自動アップデートを停止します。
find366
※今後も同様の事象が発生することを考えると、
可能であれば自動アップデートを停止したほうがいいかもしれません。
対処方法3
プログラムのソースを自分で編集が出来るのであればこの方法がオススメです。
try:
// 自動でPCのChromeと同じバージョンのdriverをインストールする処理
self.driver = webdriver.Chrome(ChromeDriverManager().install(),options=options)
except:
// 例外発生時、配布されているもののうち最新のdriverをインストールする処理
res = requests.get('https://chromedriver.storage.googleapis.com/LATEST_RELEASE')
self.driver = webdriver.Chrome(ChromeDriverManager(res.text).install(),options=options)