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 。
小智 9
这对我有用:
service = Service(ChromeDriverManager(version="114.0.5735.90").install())
Run Code Online (Sandbox Code Playgroud)
我不确定您使用的是哪个版本的 Selenium。如果您使用的是最新版本(例如 Selenium v4.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
以前做过的事情。
小智 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)
在稳定的 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 脚本,它应该可以工作。