使用webdriver-manager启动Chrome报错ValueError:无法获取Chrome版本求助
问题原因
该错误是webdriver-manager尝试读取Windows注册表获取本地Chrome浏览器版本号失败触发的,常见触发原因如下:
- Chrome安装路径为全局所有用户路径,对应的版本注册表项写入了
HKEY_LOCAL_MACHINE,而非webdriver-manager默认读取的HKEY_CURRENT_USER路径 - 本地未安装正式版Chrome浏览器,使用的是便携版/开发测试版Chrome,未写入对应注册表项
- 当前运行脚本的账号没有对应注册表路径的读取权限
- 使用的webdriver-manager版本过旧,适配逻辑存在缺陷
解决方案
按优先级依次尝试以下操作即可:
- 首先确认本地已经安装官方正式版Chrome,刚安装的话可以重启一次设备确保注册表写入生效
- 升级webdriver-manager到最新版本,同时适配selenium 4+的标准写法替换原有代码:
升级命令:
修正后的代码:pip install --upgrade webdriver-managerfrom selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) - 如果仍报错,可以手动指定本地Chrome版本号绕过自动检测:
首先打开Chrome设置-关于Chrome,查看完整版本号(如118.0.5993.89),修改代码如下:from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # 替换version参数值为你本地的实际Chrome版本号 driver = webdriver.Chrome(service=Service(ChromeDriverManager(version="118.0.5993.89").install())) - 还可以手动指定Chrome二进制文件路径,跳过注册表读取逻辑:
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager chrome_options = Options() # 替换为你本地Chrome.exe的实际安装路径 chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe" driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options) - 不想排查Chrome的注册表问题也可以直接换成同为Chromium内核的Edge浏览器,代码只需更换对应的驱动管理器即可,兼容性与Chrome几乎一致。
内容的提问来源于stack exchange,提问作者Yaya Ney
相关产品推荐
相关产品推荐

