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

使用TestNG+Maven调用Chrome遇SessionNotCreatedException问题求助

解决ChromeDriver与Chrome版本不兼容问题(无需手动设置驱动路径)

问题根源

你碰到的org.openqa.selenium.SessionNotCreatedException核心原因是ChromeDriver版本和本地Chrome浏览器版本不匹配:错误提示明确当前ChromeDriver仅支持Chrome 91,但你本地的Chrome版本更高,导致无法创建会话。

你已经引入了webdrivermanager依赖,但代码中未触发它的自动版本管理逻辑,所以默认还是调用了旧版ChromeDriver;而手动通过System.setProperty指定最新适配的驱动时,版本匹配,因此代码正常运行。

解决方案

方案1:利用WebDriverManager自动管理驱动

在初始化ChromeDriver之前,添加一行WebDriverManager的初始化代码,它会自动检测本地Chrome版本,下载并配置对应版本的ChromeDriver,无需手动指定路径:

// 初始化WebDriverManager,自动匹配ChromeDriver版本
WebDriverManager.chromedriver().setup();

// 原有代码保持不变
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches", new String[] { "enable-automation" });
WebDriver driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.navigate().to("https://www.google.com/");

方案2:使用Selenium 4.x内置驱动管理器(无需额外依赖)

Selenium 4.6.0及以上版本自带了驱动管理功能,你可以直接移除webdrivermanager依赖,代码无需额外初始化,Selenium会自动处理驱动匹配:

ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches", new String[] { "enable-automation" });
// Selenium 4.6+自动适配驱动,无需手动设置路径
WebDriver driver = new ChromeDriver(options);
driver.manage().window().maximize();
driver.navigate().to("https://www.google.com/");

注意事项

  • 执行代码前,确保Maven已完成依赖下载(可执行mvn clean install刷新依赖)
  • 两种方案都不需要编写System.setProperty("webdriver.chrome.driver", "...")代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:38:22