在Chrome 136版本发布后,使用Selenium进行浏览器自动化时频繁出现初始化失败的问题,典型表现为“session not created: This version of ChromeDriver does not support Chrome version 136”。该问题主要源于Chrome浏览器自动更新至136后,现有ChromeDriver版本未能及时兼容,导致WebDriver无法正常启动实例。此外,部分用户反馈即使下载最新版驱动仍报错,可能与驱动路径配置、缓存残留或Selenium版本不匹配有关。此兼容性问题严重影响自动化测试流程的稳定性,亟需明确的版本对应关系与升级策略以恢复服务。
1条回答 默认 最新
IT小魔王 2025-09-17 20:56关注1. 问题背景与现象分析
在Chrome浏览器更新至136版本后,大量使用Selenium进行自动化测试的团队报告出现初始化失败的问题。典型错误信息为:
session not created: This version of ChromeDriver does not support Chrome version 136该异常通常出现在调用
webdriver.Chrome()实例化浏览器时,表明当前使用的ChromeDriver无法识别或支持已安装的Chrome 136浏览器内核。由于Chrome采用自动后台更新机制,用户端可能在无感知情况下完成升级,而测试环境中的ChromeDriver仍停留在旧版本(如135或更早),从而引发版本不匹配。进一步调查发现,即使手动下载并替换为“最新版”驱动,部分系统仍报错,提示兼容性问题持续存在。这说明问题不仅限于版本滞后,还涉及驱动管理、路径配置、缓存机制及Selenium客户端库的协同适配。
2. 核心原因分层解析
- 版本错配:ChromeDriver必须与Chrome主版本号严格对齐,Chrome 136需要对应ChromeDriver 136.x.x.x版本。
- 驱动获取延迟:ChromeDriver官方发布通常滞后于Chrome正式版1-3天,导致短暂空窗期。
- 路径未正确指向新驱动:自动化脚本可能仍在引用旧版驱动路径,或PATH环境变量未更新。
- 浏览器/驱动缓存残留:临时文件、用户数据目录或WebDriver缓存可能导致加载旧配置。
- Selenium版本不兼容:低版本Selenium(如<4.10)可能存在协议解析缺陷,影响新版驱动通信。
- CI/CD流水线固化版本:持续集成环境中镜像未及时更新,造成生产与本地环境差异。
3. 版本对应关系表(关键参考)
Chrome 浏览器版本 所需 ChromeDriver 版本 最低 Selenium 建议版本 发布状态 官方下载地址 136.0.7103.XX 136.0.7103.93 4.11.0 已发布 chromedriver.chromium.org 135.0.6987.XX 135.0.6987.132 4.10.0 稳定 chromedriver.chromium.org 134.0.6945.XX 134.0.6945.80 4.9.0 归档 Google 存储桶 133.0.6885.XX 133.0.6885.4 4.8.0 归档 Google 存储桶 132.0.6823.XX 132.0.6823.87 4.7.0 归档 Google 存储桶 131.0.6778.XX 131.0.6778.85 4.6.0 归档 Google 存储桶 130.0.6723.XX 130.0.6723.91 4.5.0 归档 Google 存储桶 129.0.6668.XX 129.0.6668.58 4.4.0 归档 Google 存储桶 128.0.6613.XX 128.0.6613.119 4.3.0 归档 Google 存储桶 127.0.6533.XX 127.0.6533.88 4.2.0 归档 Google 存储桶 4. 解决方案实施路径
- 确认本地Chrome版本:
chrome://settings/help或命令行执行google-chrome --version。 - 访问ChromeDriver官网下载对应136版本驱动。
- 替换原有driver文件,并确保执行权限(Linux/Mac需chmod +x chromedriver)。
- 更新Selenium至4.11+版本:
pip install --upgrade selenium。 - 检查代码中是否硬编码旧路径,建议使用
webdriver-manager实现自动管理。 - 清除浏览器用户数据目录(可选):
--user-data-dir=/tmp/chrome-temp避免缓存冲突。 - 重启测试环境,验证实例化是否成功。
- 在CI/CD中引入版本锁定策略,防止突发更新破坏构建稳定性。
5. 自动化驱动管理推荐方案
为避免未来重复发生此类问题,强烈建议引入
webdriver-manager库,其能自动检测Chrome版本并下载匹配的ChromeDriver。from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service service = Service(ChromeDriverManager().install()) driver = webdriver.Chrome(service=service)该方式无需手动维护驱动文件,适用于动态环境与多节点分布式测试架构。
6. 故障排查流程图(Mermaid格式)
graph TD A[启动Selenium Chrome实例] --> B{Chrome版本是否为136?} B -- 否 --> C[降级Chrome或升级Driver] B -- 是 --> D{ChromeDriver是否为136.x?} D -- 否 --> E[下载匹配版本Driver] D -- 是 --> F{Selenium版本≥4.11?} F -- 否 --> G[升级Selenium] F -- 是 --> H{使用webdriver-manager?} H -- 否 --> I[切换至自动管理方案] H -- 是 --> J[检查PATH与缓存] J --> K[成功创建Session]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报