ValueError: url 没有这样的驱动程序 (chromedriver_mac64_m1.zip)

C_T*_*rbo 2 python selenium

我正在使用 Selenium 运行一个脚本,但就在几天前,我开始收到以下错误:

line 86, in <module> ChromeDriverManager().install()), options=opt)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/webdriver_manager/chrome.py", line 38, in install
    driver_path = self._get_driver_path(self.driver)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/webdriver_manager/core/manager.py", line 31, in _get_driver_path
    file = self._download_manager.download_file(driver.get_url())
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/webdriver_manager/core/download_manager.py", line 28, in download_file
    response = self._http_client.get(url)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/webdriver_manager/core/http.py", line 32, in get
    self.validate_response(resp)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/webdriver_manager/core/http.py", line 15, 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/106.0.5249.61/chromedriver_mac64_m1.zip
Run Code Online (Sandbox Code Playgroud)

我尝试在 GitHub 上做一些研究,但无法找出错误 https://github.com/SergeyPirogov/webdriver_manager/issues/443

ana*_*chy 5

因为 google 已经更改了适用于 Apple Silicon mac 的 chromedriver 的链接,看来新链接是https://chromedriver.storage.googleapis.com/106.0.5249.61/chromedriver_mac_arm64.zip,并且维护者webdriver-manager尚未修补它。当他们这样做时,您可以尝试更新您的 webdriver_manager。

pip install webdriver-manager --upgrade
Run Code Online (Sandbox Code Playgroud)

但现在,您应该直接访问上面的链接并直接下载 chromedriver。解压缩后,您可以使用 selenium 导入它,其余代码将保持不变。

代码会是这样的,

from selenium import webdriver

browser = webdriver.Chrome(executable_path=r"/path/to/chromedriver")
Run Code Online (Sandbox Code Playgroud)

更新:

本指南不适用于 selenium 4.10.0,如果您想使用 4.10.0,请遵循TypeError: WebDriver.__init__() 在 Selenium Python 中获得意外的关键字参数 'executable_path' 。

或者您可以安装 4.6.0 并按照此操作。