运行Selenium代码时遭遇SessionNotCreatedException错误求助
问题
运行Selenium Java代码时出现如下错误:
Exception in thread "main" 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 122 Current browser version is 121.0.6167.161 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe Build info: version: '4.18.1', revision: 'b1d3319b48' System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '11.0.2' Driver info: org.openqa.selenium.chrome.ChromeDriver Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], extensions: []}}]}] at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:139) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:95) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:67) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:162) at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:233) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:162) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:114) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:89) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:84) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:52) at SeleniumIntro.main(SeleniumIntro.java:17)
使用的代码如下:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeDriverService; public class SeleniumIntro { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver", "D:\\chromedriver-win64\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("https://google.com"); } }
错误提示当前ChromeDriver仅支持Chrome 122版本,但本地安装的Chrome浏览器版本为121.0.6167.161,该如何解决?
解决方案
方法1:升级Chrome浏览器到122版本
打开Chrome浏览器,点击右上角三个点 → 设置 → 关于Chrome,浏览器会自动检查并更新到最新版本(即122),更新完成后重启浏览器即可。
方法2:降级ChromeDriver到适配121版本的版本
- 确认Chrome版本号前三位为121.0.6167,下载对应版本的ChromeDriver
- 替换
D:\chromedriver-win64\chromedriver.exe为下载的适配版本
方法3:使用WebDriverManager自动管理驱动版本(推荐)
手动管理驱动易出现版本不匹配问题,改用WebDriverManager可自动匹配浏览器对应的驱动版本:
- 在Maven项目的pom.xml中添加依赖:
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.6.0</version> </dependency>
- 修改代码,移除
System.setProperty行,替换为WebDriverManager初始化代码:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import io.github.bonigarcia.wdm.WebDriverManager; public class SeleniumIntro { public static void main(String[] args) { WebDriverManager.chromedriver().setup(); WebDriver driver = new ChromeDriver(); driver.get("https://google.com"); } }
每次运行代码时,WebDriverManager会自动下载并使用与当前Chrome版本匹配的ChromeDriver,彻底避免版本不兼容问题。
内容的提问来源于stack exchange,提问作者Nandini Shekki
相关产品推荐
相关产品推荐

