webdriver-manager There is no such driver by urlエラーで起動不可

- Python -
2023.09.03
Python[パイソン]

以下2ステップで解決しました。

  1. Google Chromeを最新版(v116以上)へ更新
  2. 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

ぼくの場合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の場合、

  1. Chromeを最新版(v116.x以上)に更新する
  2. 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に起因する本記事タイトルのエラーも解消されます。

以下の別記事でまとめているので、一度お試しあれ。

参考【Selenium】ChromeDriver自動更新で楽する方法【Python】

↑TOP