Selenium WebDriver Chrome 115 停止工作

TaK*_*aKo 29 python google-chrome selenium-webdriver

我在 Windows 上安装了 Chrome 115.0.5790.99,并且使用 Selenium 4.10.0。在我的 Python 代码中,我调用service = Service(ChromeDriverManager().install())并返回错误:

ValueError: url [sic] https://chromedriver.storage.googleapis.com/LATEST_RELEASE_115.0.5790没有这样的驱动程序。

我使用 ChromeDriverManager().install() 来确保使用最新稳定版本的 webdriver。如何解决问题?

我的简单代码:

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()
Run Code Online (Sandbox Code Playgroud)

错误输出:

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()
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但没有成功:

在 Chrome 115 的 webdriver 最终在下载位置发布之前,我该如何解决该问题?

Mic*_*ntz 35

Selenium Manager 现在完全包含在 Selenium4.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()
Run Code Online (Sandbox Code Playgroud)

如果在系统PATH中找不到该驱动程序,Selenium Manager 将自动下载它。


如果您想知道为什么现在会看到此错误ChromeDriverManager,这是因为由于 Chromium 团队针对新的Chrome-for-Testing进行了驱动程序重组,下载量仅上升到版本 114 。

  • “selenium” 刚刚发布了 Python 版本“4.11.2”,支持较新的 chromedrivers。请务必在 Chrome 116 发布之前进行升级,以避免出现错误。 (2认同)

小智 9

这对我有用:

 service = Service(ChromeDriverManager(version="114.0.5735.90").install())
Run Code Online (Sandbox Code Playgroud)


Sha*_*awn 7

我不确定您使用的是哪个版本的 Selenium。如果您使用的是最新版本(例如 Selenium v​​4.6.0 或更高版本),则不必使用第三方库(例如WebDriverManager处理浏览器驱动程序)。您的代码可以简化如下:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.crawler-test.com")
print(driver.title)
Run Code Online (Sandbox Code Playgroud)

结果:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.crawler-test.com")
print(driver.title)
Run Code Online (Sandbox Code Playgroud)

更新: ChromeWebDriverManager与确保 的稳定版本无关WebDriver,它用于确保chormedriver.exe根据系统中的浏览器版本使用正确版本的驱动程序二进制文件 ( )。话虽如此,现在有了 seleniumv4.6.0或更高版本,selenium 的内置工具SeleniumManager将为我们处理浏览器驱动程序。换句话说,SeleniumManager会做WebDriverManager以前做过的事情。

参考: Selenium Manager 简介

  • 不,不需要。如果您的硒版本是“4.6.0”或更高版本,则无需执行任何操作,只需使用我答案中的代码即可。在内部,selenium 将为您下载并处理浏览器驱动程序二进制文件。 (2认同)

小智 6

试试这个:

service = Service(ChromeDriverManager(version="114.0.5735.90").install())
Run Code Online (Sandbox Code Playgroud)


小智 6

我已经更新了webdriver-manager,之后没有遇到任何问题。

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


TaK*_*aKo 2

在稳定的 webdriver 版本 115 发布之前,解决方案是使用测试 webdriver 并相应地测试 Chrome。步骤是:

  • 从系统中卸载当前安装的网络驱动程序和Chrome;

  • 在Chrome for Testing 可用性中找到 webdriver 和 Chrome 的稳定版本

  • 搜索二进制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 脚本,它应该可以工作。