きっと多くのPython+Selenium利用者泣いている、最近webdriver_managerがエラーを起こすようになったようなので原因を調べてみました
エラーについて
まず発生したエラーメッセージから
例外が発生しました: ValueError
There is no such driver by url https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790
File "C:\Users\Administrator\Desktop\python\moppy.py", line 561, in main
print(ChromeDriverManager().install())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\Desktop\python\moppy.py", line 600, in <module>
_ = main()
^^^^^^
ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790
単刀直入にいうと”https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790“なんてURLは存在しないってこと
実際に開いてみるとこんな感じ
404エラーみたいにURLがないわけじゃなくてパラメータ不正みたいなエラーがjsonで表示される
ちなみにChromeのバージョンが114の時だとこんな感じ
最新のChromedriverのバージョン情報をリビジョンまで表示してくれるのでこれで取得すべきChromedriverが特定できるようになっていました
原因を探ってみる
いつもはChromeの安定版がリリースされる頃にはChromedriverも同じバージョンがリリースされていたので成立していたwebdriver_managerの仕様ですが、エラーの内容から115以降はこのサイトでChromedriverがリリースされていないと推察できます
そんなわけで原因を探るべく、まずはChromedriverを管理しているページを訪問します
そうすると早速答えが書いてありました
Current Releases
- If you are using Chrome version 115 or newer, please consult the Chrome for Testing availability dashboard. This page provides convenient JSON endpoints for specific ChromeDriver version downloading.
- For older version of Chrome, please see below for the version of ChromeDriver that supports it.
For more information on selecting the right version of ChromeDriver, please see the Version Selection page.
https://chromedriver.chromium.org/downloads
Chromeのバージョンが115以上の場合はダッシュボード参照するようにとのこと
実際にページを開いてみるとこんな感じ
Chromeの安定・ベータ・開発・試験をそれぞれでのバージョンの最新版、それぞれのChromeとChromedriverをそれぞれのプラットフォームのインストールファイルパスがあるのでダウンロードして解凍すればバージョン115以降のChromedriverを取得できるので解決!
改めて自動更新ができるようにしたい
自動更新できない理由と手動でChromedriverを更新する方法はわかったものの、自動更新できるようになってこそ解決
近日中に確認して対応しようと思います
・・と思ったら7/24にもうモジュールアップデート(3.9.1以降が対応済みバージョン)されてましたのでpipなどでアップデートすれば解決のようです(感謝!!)
https://pypi.org/project/webdriver-manager/
pyinstallerなどでexe化している場合はサイト側の仕様変更なのでライブラリを入れ替えてもう一度exe化するしかなさそうですね・・・
7/30にまたエラー
Exception: No such driver version 115.0.5790.110 for win32
毎日の自動処理がエラー吐いていたので確認しました
またドライバーがないエラーっぽいのですが・・流石です!webdriver_managerは既に7/27にアップデートされてる(マジ感謝!!)
バージョン4.0.0では発生しませんでしたので再びのアップデートを是非
ちなみに
PyPIを改めて見たわけですが公式にはseleniumのバージョンに合わせてソースを変えるらしいです
# selenium 3
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
私の環境はselenium4なのにselenium3の書き方のままで動いているのですがどこかで修正すべきなんですかね??と自問自答して気が向いた時に修正しようと心に誓いました・・
コメント
通りすがりの者です.
自分も同じ問題に直面していましたが,webdriver-managerを最新版にアップデートすると解決しました.
7/24に更新が入っています.
https://pypi.org/project/webdriver-manager/3.9.1/
コメントありがとうございます!
昨日私もアップデートしてみたのですがダメだったので時間差ですかね??
今は対応できていること確認できました
덕분에 살았습니다..
同じ悩みを抱えていましたので、大変参考になりました!ありがとうございました。
コメントありがとうございます!
結論としてはアップデートすれば解決だったんですけどねw
全てのライブラリを定期的にアップデートとか怖くて出来ないのですが今回はそれが裏目になりました(と言ってもライブラリの問題ではなくサイト側の都合ですが)