You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium Java项目ChromeDriver与Chrome版本不兼容异常如何解决

问题解答

1. 同类异常的出现情况

2022年Chrome 103-104版本迭代周期内,大量Selenium开发者遇到过完全一致的适配异常,核心诱因有三点:

  • 当时io.github.bonigarcia.wdm.WebDriverManager 5.2及之前版本存在版本检测逻辑bug,会错误拉取高版本驱动,且本地缓存不会自动校验版本一致性,搁置项目重新运行时很容易触发缓存驱动和当前浏览器版本错位
  • 国内网络环境下Chrome稳定版更新通道不通,很多用户本地Chrome停留在103版本,但WebDriverManager默认拉取最新版驱动,直接触发版本不匹配
  • 同期Chrome调整了DevTools协议的权限校验规则,旧版驱动即使大版本号一致,小版本不匹配也会直接报错,和之前大版本兼容的规则不同,很多开发者没有及时适配。

2. 可行临时解决方案

按优先级从高到低尝试:

  • 升级Selenium到4.6及以上稳定版本,该版本后内置Selenium Manager组件,会自动检测本地Chrome版本、下载匹配的驱动,不需要额外引入WebDriverManager依赖,也不需要手动写代码指定驱动路径,直接初始化ChromeDriver即可正常运行,可规避绝大多数版本适配问题
  • 如果必须使用低版本Selenium+WebDriverManager,先彻底清理本地驱动缓存:删除C:\Users\<你的用户名>\.cache\selenium目录、本地Maven仓库下webdriver目录中所有chromedriver相关文件,再将WebDriverManager升级到最新稳定版,移除手动指定驱动路径的代码,让其重新拉取对应版本驱动
  • 如果本地Chrome因企业管控、网络问题锁定为103版本无法升级,下载和本地Chrome完整版本号完全一致的103版ChromeDriver(大版本+小版本号必须完全对应,仅大版本匹配无法正常运行),手动指定驱动路径时注意Java字符串中反斜杠需要转义,正确写法示例:
System.setProperty("webdriver.chrome.driver", "C:\\Users\\path\\webdriver\\chromedriver-103.0.5060.134.exe");
  • 卸载已安装的104 Beta版Chrome,Beta/Dev/Canary通道的Chrome和稳定版ChromeDriver不通用,会干扰版本检测逻辑,自动化测试统一使用稳定版Chrome即可。

3. ChromeDriver与Chrome要求严格版本匹配的原因

ChromeDriver是通过Chrome内置的DevTools协议实现自动化控制的,没有独立的兼容层:

  • Chrome每个正式版本迭代都会调整DevTools协议的接口定义、参数结构、权限校验逻辑,甚至修改内部DOM渲染、事件响应的底层逻辑
  • ChromeDriver是和对应版本Chrome的源码同步编译的,仅保证和同版本Chrome的接口完全适配,跨版本调用时会出现接口不存在、参数不匹配、权限校验失败等问题,直接导致会话创建失败、元素定位异常、操作无响应等报错
  • Chrome 100版本之后,谷歌进一步收紧了版本匹配规则,要求大版本必须一致,115版本之后更是调整了驱动分发逻辑,每个Chrome小版本对应唯一匹配的驱动版本,不再支持跨小版本兼容。

内容的提问来源于stack exchange,提问作者noob_dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:51:31