Python Selenium使用WebDriverManager出现SSL证书验证失败如何解决?
错误原因
该SSL报错是WebDriverManager请求谷歌驱动存储地址时,SSL证书验证失败导致,常见原因包括公司网络代理/SSL流量拦截、Python根证书库不全、国内网络访问谷歌服务受限。以下是对应解决方案:
解决方案
1. 临时禁用SSL验证(最快适配测试场景)
新版本webdriver-manager支持直接传入参数关闭SSL验证,修改代码如下:
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service import time # 关闭SSL验证 driver = webdriver.Chrome(service=Service(ChromeDriverManager(ssl_verify=False).install())) driver.get("https://google.com") time.sleep(2) driver.close()
也可通过设置环境变量全局生效:在系统环境变量中新增WDM_SSL_VERIFY,值设为0即可。
2. 配置自定义根证书(适合公司网络SSL拦截场景)
如果网络环境有企业防火墙/代理做SSL流量抓包、替换了证书,可先导出企业根证书为PEM格式,再将ssl_verify参数设置为证书的本地路径:
driver = webdriver.Chrome(service=Service(ChromeDriverManager(ssl_verify="C:/path/to/your/company_root_cert.pem").install()))
也可将环境变量WDM_SSL_VERIFY的值设置为证书路径全局生效。
3. 修复Python根证书库
如果是Python根证书缺失导致的验证失败,先更新证书依赖库:
pip install --upgrade certifi
Mac系统还需要运行Python安装目录下的Install Certificates.command文件更新系统证书链;Windows系统可以重新安装Python,勾选「Install for all users」和「Add Python to PATH」选项,自动配置根证书。
4. 更换ChromeDriver镜像源(适合国内网络访问谷歌受限场景)
通过环境变量指定国内镜像源即可,比如阿里ChromeDriver镜像:新增系统环境变量WDM_CHROMEDRIVER_DOWNLOAD_URL,值设为https://npmmirror.com/mirrors/chromedriver/即可。
5. 使用Selenium自带的驱动管理
Selenium 4.6及以上版本已经内置了Selenium Manager,无需额外安装webdriver-manager,会自动匹配对应版本的浏览器驱动,直接写代码即可:
from selenium import webdriver import time driver = webdriver.Chrome() driver.get("https://google.com") time.sleep(2) driver.close()
内容的提问来源于stack exchange,提问作者user1865709
相关产品推荐
相关产品推荐

