WebDriverManager致ChromeDriver与Chrome116不匹配,Selenium3.x无法升级如何解决?
针对Selenium 3.141.59 + WebDriverManager 3.7.1 与Chrome 116兼容问题的解决方案
问题背景
当前触发的异常信息:
org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 116.0.5845.111 with binary path
核心原因是WebDriverManager 3.7.1版本过旧,无法识别Chrome 116版本,自动下载的ChromeDriver 114与当前浏览器版本不兼容,且项目无法升级至Selenium 4.x,以下是可行的替代解决方案:
方案1:手动指定ChromeDriver版本
WebDriverManager支持手动指定驱动版本,直接配置与Chrome 116匹配的ChromeDriver版本即可,修改初始化代码如下:
// 指定对应Chrome 116的ChromeDriver版本,示例为116.0.5845.96 WebDriverManager.chromedriver().version("116.0.5845.96").setup(); ChromeOptions options = new ChromeOptions(); options.addArguments("--no-sandbox"); options.addArguments("--test-type"); options.addArguments("--start-maximized"); if (setBrowserUI().equals("yes")) { options.addArguments("--headless"); } options.addArguments("Browser.setDownloadBehavior", "allow"); options.addArguments("--disable-extensions"); options.addArguments("--disable-dev-shm-usage"); options.setExperimentalOption("prefs", chromePrefs); base.driver = new ChromeDriver(options);
注意:ChromeDriver版本需与Chrome主版本一致,小版本尽量匹配,可从ChromeDriver官方版本列表中找到对应Chrome 116的稳定版驱动号。
方案2:降级Chrome浏览器至114版本
若允许调整测试环境的Chrome版本,可将浏览器降级到114.x版本,操作步骤:
- 卸载当前Chrome 116版本
- 安装Chrome 114的离线安装包
- 关闭Chrome自动更新功能,避免版本自动升级
降级完成后,WebDriverManager 3.7.1会自动下载匹配的ChromeDriver 114,恢复正常运行。
方案3:手动下载ChromeDriver并配置路径
跳过WebDriverManager的自动管理流程,手动下载对应Chrome 116的ChromeDriver,然后在代码中指定驱动文件路径:
// 替换为你实际的ChromeDriver文件路径,Windows系统需带.exe后缀 System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver"); ChromeOptions options = new ChromeOptions(); options.addArguments("--no-sandbox"); options.addArguments("--test-type"); options.addArguments("--start-maximized"); if (setBrowserUI().equals("yes")) { options.addArguments("--headless"); } options.addArguments("Browser.setDownloadBehavior", "allow"); options.addArguments("--disable-extensions"); options.addArguments("--disable-dev-shm-usage"); options.setExperimentalOption("prefs", chromePrefs); base.driver = new ChromeDriver(options);
内容的提问来源于stack exchange,提问作者Mindwrap Thinker
相关产品推荐
相关产品推荐

