webdriver-manager There is no such driver by urlエラーで起動不可
以下2ステップで解決しました。
- Google Chromeを最新版(v116以上)へ更新
- pip install -U webdriver-managerでwebdriver-managerをv4へ更新
ちなみに...
そもそも「webdriver-managerを使わない」という選択肢もあります。
Google Chrome v115.x 以上に更新されてから、webdriver-managerでこんな↓エラーに直面した時の状況と、解決策について。
Traceback (most recent call last):
File "/Users/yuki/Desktop/script.py", line 253, in driver_setup
ChromeDriverManager().install(), options=options)
File "/usr/local/lib/python3.9/site-packages/webdriver_manager/chrome.py", line 39, in install
driver_path = self._get_driver_path(self.driver)
File "/usr/local/lib/python3.9/site-packages/webdriver_manager/core/manager.py", line 30, in _get_driver_path
file = self._download_manager.download_file(driver.get_url())
File "/usr/local/lib/python3.9/site-packages/webdriver_manager/core/download_manager.py", line 28, in download_file
response = self._http_client.get(url)
File "/usr/local/lib/python3.9/site-packages/webdriver_manager/core/http.py", line 33, in get
self.validate_response(resp)
File "/usr/local/lib/python3.9/site-packages/webdriver_manager/core/http.py", line 16, in validate_response
raise ValueError(f"There is no such driver by url {resp.url}")
ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/115.0.5790/chromedriver_mac64.zip
どうやら、Google Chrome v115.x以降、ChromeDriver公式の管理のされかた(?)が変わったようで、それに引っ張られてwebdriver-managerも影響を受けたようです。
本記事では、そのあたりの細かいことは気にせずエラー解決の方法のみにフォーカスします。
ー もくじ ー
webdriver-manager × Google Chrome v115~:There is no such driver by urlエラーで起動不可
Chrome 確認事項・前提
まず、現在使用中のGoogle Chromeがバージョン115.X より上になっていることを確認します。
バージョン確認をして「更新が必要です」となっていたら、最新版へと更新→ブラウザ再起動します(v116以上になるはず)。
もしバージョンが114.x以前の場合、別事象だと思われるため本記事は役に立ちません。
解決策:webdriver-managerを最新版(v4.0.0以上)へ更新
コマンドラインで以下を実行して、webdriver-managerを最新版(v4.0.0以上)に更新すると解決する可能性があります。
pip install -U webdriver-manager
% pip install -U webdriver-manager
Requirement already satisfied: webdriver-manager in /usr/local/lib/python3.9/site-packages (3.8.5)
Collecting webdriver-manager
Obtaining dependency information for webdriver-manager from https://files.pythonhosted.org/packages/19/5a/a16653bfce685c9832217d377f52065351eeac9862e44e2996cd81f3bb4d/webdriver_manager-4.0.0-py2.py3-none-any.whl.metadata
・・・省略・・・
Successfully installed webdriver-manager-4.0.0
すったもんだあったけど、webdriver-managerをアップデートしたら、4.0.0になってて問題は諸々解決してしまったw#Python #webdrivermanager#selenium
— showBOO (@showBOO) August 18, 2023
ぼくの場合Chrome v115.xの時はこれでは解決せず、v116.x以上になったら結果的にこのwebdriver-managerの更新で解決しました。
Chromeバージョンが115.xのとき、解決しない場合あり
ぼくの場合、chrome v115.xのときにwebdriver-manager v4へ更新したらエラーメッセージが以下のように変わりました。
Traceback (most recent call last): File "/Users/yuki/Desktop/script.py", line 103, in driver = driver_setup() File "/Users/yuki/Desktop/script.py", line 93, in driver_setup driver = webdriver.Chrome(ChromeDriverManager().install(),options=options) File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/chrome/webdriver.py", line 76, in __init__ RemoteWebDriver.__init__( File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary
Chromeバージョンが115.xの場合、
- Chromeを最新版(v116.x以上)に更新する
- webdriver-manager も最新版(v4以上)に更新する
というのが最も簡単な解決方法です。
他のかたはわかりませんが、ぼくの場合はこれで無事解決しました。
もしChrome v115を使い続ける何かしらの理由があって、pip install -U webdriver-managerでv4へアップグレード後に↑と同じエラーが出た場合は以下記事の内容を試してみてください。
関連記事Mac/webdriver-manager × Chrome v115でcannot find Chrome binaryエラー
ちなみにぼくの当事象発生時の環境は以下です。
- OS:Mac Ventura 13.3.1
- Python:3.9.6
- Selenium:3.141.0
- webdriver-manager:3.8.5
- Chrome:115.0.5790.102
参考:webdriver-managerを使わずSeleniumだけで自動更新可
2022年11月リリースのSeleniumバージョン4.6から、Selenium自体にChromeDriverを自動更新する「Selenium Manager」という機能が搭載されました。
これだけ↓で適切なChromeDriverが自動でダウンロードされます。
Pythonfrom selenium import webdriver
driver = webdriver.Chrome()
Seleniumのバージョンを更新できるのであれば、もうChromeDriver自動更新目的でwebdriver-managerをインストール/インポートする必要はありません。
webdriver-managerに起因する本記事タイトルのエラーも解消されます。
以下の別記事でまとめているので、一度お試しあれ。