普通网友 2025-09-17 20:55 采纳率: 98.7%
浏览 2
已采纳

Chrome 136中Selenium初始化报错

在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.XX136.0.7103.934.11.0已发布chromedriver.chromium.org
    135.0.6987.XX135.0.6987.1324.10.0稳定chromedriver.chromium.org
    134.0.6945.XX134.0.6945.804.9.0归档Google 存储桶
    133.0.6885.XX133.0.6885.44.8.0归档Google 存储桶
    132.0.6823.XX132.0.6823.874.7.0归档Google 存储桶
    131.0.6778.XX131.0.6778.854.6.0归档Google 存储桶
    130.0.6723.XX130.0.6723.914.5.0归档Google 存储桶
    129.0.6668.XX129.0.6668.584.4.0归档Google 存储桶
    128.0.6613.XX128.0.6613.1194.3.0归档Google 存储桶
    127.0.6533.XX127.0.6533.884.2.0归档Google 存储桶

    4. 解决方案实施路径

    1. 确认本地Chrome版本:chrome://settings/help 或命令行执行 google-chrome --version
    2. 访问ChromeDriver官网下载对应136版本驱动。
    3. 替换原有driver文件,并确保执行权限(Linux/Mac需chmod +x chromedriver)。
    4. 更新Selenium至4.11+版本:pip install --upgrade selenium
    5. 检查代码中是否硬编码旧路径,建议使用webdriver-manager实现自动管理。
    6. 清除浏览器用户数据目录(可选):--user-data-dir=/tmp/chrome-temp避免缓存冲突。
    7. 重启测试环境,验证实例化是否成功。
    8. 在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]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 9月17日