Maven+Java17遇org.openqa.selenium.SessionNotCreatedException问题求助
Maven项目中Selenium启动Chrome会话失败:SessionNotCreatedException问题排查
核心错误
org.openqa.selenium.SessionNotCreatedException: Could not start a new session
完整错误堆栈
[main] INFO io.github.bonigarcia.wdm.WebDriverManager - Exporting webdriver.chrome.driver as C:\Users\ajays\.m2\repository\webdriver\chromedriver\win32\109.0.5414.74\chromedriver.exe Starting ChromeDriver 109.0.5414.74 (e7c5703604daa9cc128ccf5a5d3e993513758913-refs/branch-heads/5414@{#1172}) on port 46129 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully. Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start: crashed. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location C:\Users\ajays\AppData\Local\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Host info: host: 'LAPTOP-8VG52IH3', ip: '192.168.20.2' Build info: version: '4.7.0', revision: '0a5b49d16f' System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.5' Driver info: org.openqa.selenium.chrome.ChromeDriver Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], extensions: []}}], desiredCapabilities=Capabilities {browserName: chrome, goog:chromeOptions: {args: [], extensions: []}}} at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:148) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:106) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:67) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:156) at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:167) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:142) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:541) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:242) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:157) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:101) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:81) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:49) at class1test.Demo1.main(Demo1.java:14)
问题原因及解决方案
从错误日志里的DevToolsActivePort file doesn't exist和Chrome failed to start: crashed可以定位到几个常见问题,对应解决方法如下:
版本不匹配:ChromeDriver版本(109.0.5414.74)需与本地安装的Chrome浏览器版本完全一致。打开Chrome→菜单→帮助→关于Google Chrome,查看当前版本,若不一致,可手动指定WebDriverManager下载对应版本:
WebDriverManager.chromedriver().driverVersion("xxx.xxx.xxx.xxx").setup();进程残留:之前的Chrome或ChromeDriver进程未彻底关闭,导致端口占用或文件锁死。打开任务管理器,结束所有
chrome.exe和chromedriver.exe进程后重新运行测试。添加Chrome启动参数:给ChromeOptions添加参数解决DevTools端口问题,示例代码:
ChromeOptions options = new ChromeOptions(); options.addArguments("--no-sandbox"); // 绕过操作系统安全模型 options.addArguments("--disable-dev-shm-usage"); // 避免内存不足问题 options.addArguments("--remote-debugging-port=9222"); // 指定调试端口 WebDriver driver = new ChromeDriver(options);依赖兼容性:确认Maven中Selenium(4.7.0)与WebDriverManager的版本兼容,建议使用最新版WebDriverManager,避免依赖冲突。
权限问题:尝试以管理员身份运行IDE或执行Maven命令,确保Chrome有足够权限启动。
内容的提问来源于stack exchange,提问作者Mamatha D
相关产品推荐
相关产品推荐

