Selenium使用ChromeDriver时报Session not created版本不匹配错误
Selenium ChromeDriver版本不匹配问题解决方案
完整报错信息:
org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 91已知环境信息:Chrome浏览器版本为94.0.4606.61,已准备对应v94版本ChromeDriver,已尝试
setProperty指定驱动路径、使用Bonigarcia WebDriverManager管理驱动仍报错。
排查与修复步骤
- 排查系统PATH优先级问题
Selenium默认优先读取系统PATH环境变量下的ChromeDriver,优先级高于setProperty指定的路径。Windows环境下在CMD执行where chromedriver,输出的第一条路径就是脚本实际调用的驱动,再执行chromedriver --version确认版本是否为v91。如果匹配直接删除该旧版本文件即可解决问题。 - 清理项目内置旧驱动
检查项目根目录、resources资源文件夹下是否存在无意中引入的v91版本ChromeDriver,部分框架会默认读取项目同级目录下的驱动文件,优先级高于手动指定的外部路径,删除对应旧版本文件即可。 - 修正WebDriverManager配置
你提到的bonegracia是Bonigarcia开源的WebDriverManager依赖,使用时需要显式绑定浏览器版本或强制指定驱动版本,避免工具默认拉取固定版本,参考代码如下:
// 方案1:绑定本地Chrome浏览器版本自动匹配对应驱动 WebDriverManager.chromedriver().browserVersion("94.0.4606.61").setup(); // 方案2:直接强制指定ChromeDriver版本 WebDriverManager.chromedriver().driverVersion("94.0.4606.61").setup();
- 显式指定Chrome二进制路径(可选)
如果上述步骤都无效,可以在初始化ChromeOptions时显式指定浏览器二进制路径,避免Selenium读取到其他位置的Chrome版本,参考代码如下:
ChromeOptions options = new ChromeOptions(); options.setBinary("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"); WebDriver driver = new ChromeDriver(options);
修改完成后清理项目缓存、重启IDE再执行脚本即可。
内容的提问来源于stack exchange,提问作者Mohammad Rasheed
相关产品推荐
相关产品推荐

