
本文详细讲解如何解决 ChromeDriver 与 Chrome 浏览器版本不匹配导致的 SessionNotCreatedException 异常,重点介绍升级 WebDriverManager、切换至新版 Chrome for Testing 下载源及手动配置方法。
本文详细讲解如何解决 chromedriver 与 chrome 浏览器版本不匹配导致的 `sessionnotcreatedexception` 异常,重点介绍升级 webdrivermanager、切换至新版 chrome for testing 下载源及手动配置方法。
当运行 Selenium 测试时出现类似以下错误:
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 114 Current browser version is 116.0.5845.96
这表明你本地安装的 Chrome 已升级至 v116,但所用 ChromeDriver 仍为仅支持 v114 的旧版——根本原因在于:自 Chrome 115 起,官方正式弃用传统的 chromedriver.storage.googleapis.com 分发渠道,转而采用 Chrome for Testing 新平台,该平台按浏览器主版本(如 116)提供配套的稳定驱动、Stable/Beta/Dev/Canary 构建及对应校验文件。
✅ 推荐解决方案(首选自动化):
升级 WebDriverManager 至 v5.5.3 或更高版本(当前最新为 v5.6.2),它已原生适配新下载源:
<!-- Maven 依赖 --> <dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.6.2</version> <!-- 建议使用最新版 --> </dependency>
并在测试初始化中启用自动管理(无需指定版本):
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.chrome.ChromeDriver;
public class ChromeTest {
public static void main(String[] args) {
// 自动检测 Chrome 版本并下载匹配的 driver
WebDriverManager.chromedriver().setup();
ChromeDriver driver = new ChromeDriver();
driver.get("https://example.com");
driver.quit();
}
}⚠️ 注意事项:
- 确保
chrome命令或Google Chrome.app在系统 PATH 中可用(macOS 默认路径/Applications/Google Chrome.app/Contents/MacOS/Google Chrome已被正确识别); - 若项目禁用网络自动下载,可配合
forceDownload()+cachePath()手动预置驱动; - 避免硬编码
System.setProperty("webdriver.chrome.driver", "...")—— 这会绕过 WebDriverManager 的智能版本匹配逻辑。
? 备选方案(手动配置):
若需离线部署或调试,可前往 Chrome for Testing 官网,根据 Chrome 主版本(如 116.0.5845.96 → 主版本为 116)查找对应 chromedriver 下载链接(例如:https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/116.0.5845.96/mac-x64/chromedriver-mac-x64.zip),解压后通过 System.setProperty 指向本地路径。
? 总结:
Chrome v115+ 的驱动分发机制已重构,依赖旧版 WebDriverManager(升级 WebDriverManager 是最安全、可持续的解法;同时建议在 CI/CD 流程中添加 Chrome 与驱动版本校验步骤,避免环境漂移引发的偶发失败。


















