无法使用webdriver_manager.chrome自动更新Chrome驱动(Python/Selenium3)
问题根因
驱动自动更新失败问题本质是版本兼容冲突:
- Selenium 3接收驱动路径的参数规则和高版本webdriver_manager的适配逻辑不匹配
- 115及以上版本的Chrome浏览器调整了驱动分发地址,过低版本的webdriver_manager没有同步更新下载规则,会触发驱动下载失败。
复现代码如下:
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install()) driver.get("http://www.python.org")
(注:当前环境已安装依赖列表、运行报错信息可参考对应截图)
解决方案
按自身项目约束选以下任意一种方案即可:
方案1:无代码改动,降级webdriver_manager到兼容版本
如果你需要保留现有Selenium 3环境、不想修改业务代码,直接把webdriver_manager降到3.x系列的稳定兼容版即可,执行以下命令重装依赖:pip uninstall -y webdriver-manager pip install webdriver-manager==3.9.1重装完成后直接运行原有代码即可正常自动匹配、下载对应版本的Chrome驱动。
方案2:保留现有依赖版本,修改代码传参逻辑
如果不想调整依赖版本,只需要给webdriver.Chrome显式指定executable_path参数,适配Selenium 3的参数接收规则即可,修改后代码如下:from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(executable_path=ChromeDriverManager().install()) driver.get("http://www.python.org")方案3:升级Selenium到4.x系列(长期维护推荐)
如果项目没有强制绑定Selenium 3的要求,建议直接升级到Selenium 4,适配webdriver_manager官方最新的维护逻辑,减少后续版本兼容问题:- 执行命令升级Selenium:
pip install --upgrade selenium- 调整代码为Selenium 4标准写法:
from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) driver.get("http://www.python.org")
额外排查点
如果以上方案执行后仍报错,优先检查两项配置:
- 本地安装的Chrome浏览器大版本,和webdriver_manager下载的驱动版本是否完全一致
- 本地网络是否可以正常访问Chrome驱动的官方下载源,网络受限场景可在
ChromeDriverManager初始化时传入国内镜像源地址解决。
内容的提问来源于stack exchange,提问作者mahmoudi wissem
相关产品推荐
相关产品推荐

