selenium webdriver chrome 115 停止工作
我在 Windows 上安装了 Chrome 115.0.5790.99,并使用 Selenium 4.10.0。在我的 python 代码中,我调用 service = Service(ChromeDriverManager().install()) ,它返回错误 ValueError: There is no such driver by url https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790。我使用 ChromeDriverManager().install() 来确保使用最新的稳定版本网络驱动程序。如何解决问题?
我的简单代码:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time
# Install Webdriver
service = Service(ChromeDriverManager().install())
# Create Driver Instance
driver = webdriver.Chrome(service=service)
# Get Web Page
driver.get('https://www.crawler-test.com')
time.sleep(5)
driver.quit()
错误输出:
Traceback (most recent call last):
File "C:\Users\Administrator\Documents\...\test.py", line 7, in <module>
service = Service(ChromeDriverManager().install())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\webdriver_manager\chrome.py", line 39, in install
driver_path = self._get_driver_path(self.driver)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\webdriver_manager\core\manager.py", line 30, in _get_driver_path
file = self._download_manager.download_file(driver.get_driver_download_url())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\webdriver_manager\drivers\chrome.py", line 40, in get_driver_download_url
driver_version_to_download = self.get_driver_version_to_download()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\webdriver_manager\core\driver.py", line 51, in get_driver_version_to_download
self._driver_to_download_version = self._version if self._version not in (None, "latest") else self.get_latest_release_version()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\webdriver_manager\drivers\chrome.py", line 62, in get_latest_release_version
resp = self._http_client.get(url=latest_release_url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\webdriver_manager\core\http.py", line 37, in get
self.validate_response(resp)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\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/LATEST_RELEASE_115.0.5790
我尝试了以下但没有成功:
- 禁用 Chrome 自动更新,但 Chrome 还是会自行更新 (https:/ /www.minitool.com/news/disable-automatic-chrome-updates.html 和 https://www.webnots.com/7-ways-to-disable-automatic-chrome-update-in-windows-and-mac);
- 安装 Chrome 114 和 webdriver for ver 114,直到 Chrome 浏览器自动更新;
- 按照说明https://chromedriver.chromium.org/downloads/version-selection但是生成网址并运行链接时 https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790 我收到错误 No such object: chromedriver/LATEST_RELEASE_115.0.5790
在 Chrome 115 的 webdriver 之前如何解决该问题的任何建议将最终在此处发布 https://chromedriver.chromium.org/downloads
Selenium Manager 现在完全包含在 selenium
4.10.0
中,所以这就是您所需要的:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
service = Service()
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
# ...
driver.quit()
如果在系统路径中找不到该驱动程序,Selenium Manager 将自动下载它。
如果您想知道为什么现在看到 ChromeDriverManager
的此错误,这是因为由于 Chromium 驱动程序重组,https://chromedriver.chromium.org/downloads 只能升级到版本 114新版 Chrome-for-Testing 团队。
Error getting version of chromedriver 115. Retrying with chromedriver 114 (attempt 1/5)
我需要将代码从:browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
更改为 browser = webdriver.Chrome(service=Service(), options=chrome_options)
- horace_vr 2023-07-29
selenium
刚刚发布了 Python 版本 4.11.2
,支持较新的 chromedrivers。请务必在 Chrome 116 发布之前进行升级,以避免出现错误。
- Michael Mintz 2023-08-01
这对我来说是工作
service = Service(ChromeDriverManager(version="114.0.5735.90").install())
不确定您使用的是哪个版本的 selenium,如果您使用的是最新版本(例如 selenium v4.6.0
或更高版本),则不必使用第三方库(例如 WebDriverManager
)来处理浏览器驱动程序。您的代码可以简化如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.crawler-test.com")
print(driver.title)
结果:
Crawler Test Site
Process finished with exit code 0
更新:ChromeWebDriverManager
与确保 WebDriver
的稳定版本无关,它用于确保根据您的浏览器版本使用正确版本的驱动程序二进制文件 (chormedriver.exe
)系统。话虽如此,现在有了 selenium v4.6.0
或更高版本,selenium 的内置工具 SeleniumManager
将为我们处理浏览器驱动程序。换句话说,SeleniumManager
将执行WebDriverManager
以前执行的操作。
4.6.0
或更高版本,则无需执行任何操作,只需使用我答案中的代码即可。在内部,selenium 将为您下载并处理浏览器驱动程序二进制文件。
- Shawn 2023-07-20
试试这个:service = Service(ChromeDriverManager(version="114.0.5735.90").install())
我已经更新了webdriver-manager
,之后没有遇到任何问题。
pip install --upgrade webdriver-manager
在稳定的 webdriver 版本 115 发布之前,解决方案是使用测试 webdriver 并相应地测试 Chrome。步骤是:
- 从系统中卸载当前安装的网络驱动程序和 Chrome;
- 在这里找到 webdriver 和 Chrome 的稳定版本 https://googlechromelabs.github.io/chrome-for-testing/
- 搜索二进制 chrome 和 chromedriver(webdriver 的版本 和 Chrome 应该是一样的!);
- 安装Chrome(实际上你只需解压它并将其放入某个文件夹, 即:c:\chrome-test-ver);
- 将文件夹 c:\chrome-test-ver 设置为 PATH 环境变量);
- 安装webdriver.exe(只需解压并复制到Python文件夹中, 即:C:\Users\Administrator\AppData\Local\Programs\Python\Python311);
- 使用 selenium 运行你的 python 脚本,它应该可以工作。
该错误与 webdriver-manager 版本有关。
请使用以下命令将 webdriver-manager 更新到最新版本:
pip install --upgrade webdriver-manager
它在版本 3.8.6(2023 年 4 月 13 日)中得到修复
修复了 Chrome/Edge 的版本下载逻辑:
- if version="latest" - 下载 Chrome/Chromium 的 LATEST_RELEASE 和 Edge 的 LATEST_STABLE;
- 如果 version=x.x.x - 下载 x.x.x;
- 如果版本为 None - 尝试确定安装的浏览器版本,如果失败 - 下载“最新” - LATEST_RELEASE。
从 Chrome v115 开始,您需要安装“用于测试的 Google Chrome” https://developer.chrome.com/blog/chrome-for-testing 在 Chrome 上本地运行任何自动化测试。
对于那些在 2023 年 7 月 26 日之后在使用 selenium 4.8.0 的测试应用程序中遇到问题的人的解决方案,实际上在 2023 年 7 月 26 日,chrome 自动更新到版本 115.0.5790.110 并且其 Web 驱动程序尚未上传到任何地方,最可靠的网站 https://googlechromelabs.github.io/chrome-for-testing/#stable 和 https://chromedriver.chromium.org/downloads,但无网络驱动可用。
好消息是,我找到了解决方案,并且我的代码运行良好,我的测试工具也像旧工具一样运行良好。这是给您的代码。在运行这些代码之前,需要完成以下步骤:
步骤 - 01. pip uninstall selenium
步骤 - 02. pip install selenium==4.10.0
步骤 - 03. pip show selenium (确保 selenium 版本 4.10.0)已安装。
步骤 - 04. pip install webdriver_manager
##Python/selenium 4.10.0 中的代码
from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),
options=options)
url = 'https://www.google.com/'
driver.get(url)
driver.maximize_window()
sleep(10)
如果有人想停止Chrome的自动更新,请随时问我,我也可以给你同样的解决方案。
解决方案 :
在命令提示符或 pycharm 终端上:键入
pip uninstall webdriver_manager 单击 Y(是) 然后输入 pip install webdriver_manager
为了避免需要手动更新到最新版本,您可以尝试:
import urllib.request
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
try:
service = Service(ChromeDriverManager().install())
except ValueError:
latest_chromedriver_version_url = "https://chromedriver.storage.googleapis.com/LATEST_RELEASE"
latest_chromedriver_version = urllib.request.urlopen(latest_chromedriver_version_url).read().decode('utf-8')
service = Service(ChromeDriverManager(version=latest_chromedriver_version).install())
options = Options()
options.add_argument('--headless') #optional.
driver = webdriver.Chrome(service=service, options=options)
driver.get(url)
出现此问题的原因是从版本 115 开始,ChromeDriver 发布过程与 Chrome 的发布过程集成,即,它将在以下位置提供: Chrome 测试版 (CfT) 可用性信息中心。
如果您想要方便的 json: CfT JSON 端点
您可以编写方法从上面提到的链接下载 json,并下载适合您的 Chrome 版本的驱动程序。
请在下面找到我的播放列表 https://youtube.com/playlist?list=PLXGQ7XfCauHvOHNhnbPydXlhntVDPe4hC
包含如何解决chrome 115问题以及如何使用chrome进行测试