Webdrivermanager适配新版Chrome:如何为Maven依赖获取Chrome 94.0.46版本并解决sessionNotCreated错误
解决Chrome 94版本下WebDriverManager引发的sessionNotCreated错误
我来帮你排查这个头疼的问题——这类报错大多是版本不匹配、缓存残留或者依赖冲突导致的,按下面的步骤一步步来,应该能解决:
1. 严格对齐Chrome与ChromeDriver版本
划重点:Chrome和ChromeDriver的主版本+小版本必须完全一致,比如Chrome是
94.0.4606.71,就得用同版本的ChromeDriver,差一个小版本都可能触发session创建失败。
- 先打开Chrome,在地址栏输入
chrome://version/,确认你的浏览器确切版本 - 检查WebDriverManager拉取的驱动版本:在代码里加一行日志输出,或者看Eclipse控制台的WebDriverManager日志,找类似
Downloading chromedriver 94.0.4606.71的记录,确保和Chrome版本完全匹配
2. 强制WebDriverManager指定目标版本
有时候WebDriverManager会自动拉取最新版驱动,而非你需要的94.x,这时候手动指定版本就能解决:
// 把版本号换成你实际的Chrome版本 WebDriverManager.chromedriver().browserVersion("94.0.4606.71").setup();
3. 清理WebDriverManager缓存
旧的驱动缓存可能残留,导致版本不匹配:
- 找到缓存目录:Windows是
C:\Users\<你的用户名>\.cache\selenium,Mac/Linux是~/.cache/selenium - 删除所有和chromedriver相关的文件夹、文件,重新运行测试让WebDriverManager重新下载正确版本
4. 排查Maven依赖冲突
项目里的旧依赖可能和新版本WebDriverManager/ChromeDriver冲突:
- 打开
pom.xml,检查以下依赖版本:org.seleniumhq.selenium:selenium-java:Chrome 94建议搭配Selenium 4.0.0及以上版本(3.141.59也兼容,但4.x稳定性更好)io.github.bonigarcia:webdrivermanager:尽量用最新稳定版(比如5.x系列),旧版本对新Chrome版本支持不足
- 用Maven命令查看依赖树,排查冲突:
如果发现旧版本的Selenium或WebDriverManager,直接排除旧依赖,只保留适配的版本mvn dependency:tree
5. 手动验证ChromeDriver可用性
如果WebDriverManager下载的驱动损坏,手动下载测试:
- 下载对应版本的ChromeDriver(注意匹配你的操作系统)
- 把驱动放到项目
resources目录下,直接指定路径启动:
如果这样能正常启动,说明之前的缓存或WebDriverManager配置有问题System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe"); WebDriver driver = new ChromeDriver();
6. 简化Chrome启动参数
复杂的启动参数可能引发冲突,先测试基础启动:
ChromeOptions options = new ChromeOptions(); options.addArguments("--start-maximized"); options.addArguments("--no-sandbox"); // 解决Linux权限问题 options.addArguments("--disable-dev-shm-usage"); // 解决内存不足问题 WebDriver driver = new ChromeDriver(options);
去掉--headless这类非必要参数,先确认基础启动正常
如果以上步骤都试过还是不行,把Eclipse控制台里的完整错误堆栈日志贴出来,能更精准定位问题。
内容的提问来源于stack exchange,提问作者Ranjithkumar
相关产品推荐
相关产品推荐

