Eclipse中Selenium SessionNotCreatedException问题求助
Eclipse中Selenium SessionNotCreatedException问题解决
问题背景
在Eclipse中使用Selenium时遭遇SessionNotCreatedException,已尝试以下操作仍未解决:
- 更新Chrome浏览器至最新版本
- 更换Firefox和Edge浏览器测试
- 更新Selenium版本
报错详情
org.openqa.selenium.SessionNotCreatedException: 无法启动新会话。可能原因是远程服务器地址无效或浏览器启动失败。 at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:585) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:248) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:164) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:108) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:106) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:93) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:48) at Basics.FirstTestSelenium.testFindElements(FirstTestSelenium.java:61) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133) at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:598) at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173) at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46) at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:824) at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.testng.TestRunner.privateRun(TestRunner.java:794) at org.testng.TestRunner.run(TestRunner.java:596) at org.testng.SuiteRunner.runTest(SuiteRunner.java:377) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:332) at org.testng.SuiteRunner.run(SuiteRunner.java:276) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1212) at org.testng.TestNG.runSuitesLocally(TestNG.java:1134) at org.testng.TestNG.runSuites(TestNG.java:1063) at org.testng.TestNG.run(TestNG.java:1031) at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77) Caused by: org.openqa.selenium.WebDriverException: 驱动服务器进程过早终止。 构建信息: 版本: '4.1.3', 修订版本: '7b1ebf28ef' 系统信息: 主机: 'HP-5CG1376V12', IP: '192.168.0.100', 操作系统名称: 'Windows 10', 操作系统架构: 'amd64', 操作系统版本: '10.0', Java版本: '17.0.3' 驱动信息: driver.version: ChromeDriver at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:226) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:98) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:567) ... 35 more
解决方案
1. 严格匹配驱动与浏览器版本
即使浏览器是最新版,也必须确保ChromeDriver/GeckoDriver/EdgeDriver的版本与浏览器主版本完全一致(例如Chrome 118.x对应ChromeDriver 118.x.x.x)。
推荐使用WebDriverManager自动管理驱动,避免手动匹配错误,示例代码:
import io.github.bonigarcia.wdm.WebDriverManager; import org.openqa.selenium.chrome.ChromeDriver; public class FirstTestSelenium { public void testFindElements() { WebDriverManager.chromedriver().setup(); ChromeDriver driver = new ChromeDriver(); // 测试逻辑 driver.quit(); } }
2. 检查驱动权限与拦截情况
- 右键驱动文件,进入「属性-安全」,确认当前用户拥有读取和执行权限
- 若驱动被杀毒软件拦截,将驱动文件添加到杀毒软件信任列表
3. 指定浏览器二进制文件路径
部分场景下浏览器默认安装路径被修改,需手动指定路径:
import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.chrome.ChromeDriver; public class FirstTestSelenium { public void testFindElements() { ChromeOptions options = new ChromeOptions(); options.setBinary("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"); // 替换为实际路径 ChromeDriver driver = new ChromeDriver(options); // 测试逻辑 driver.quit(); } }
4. 清理浏览器后台进程
打开任务管理器,结束所有Chrome/Firefox/Edge的后台进程,再重新运行测试
5. 配置驱动路径
确保驱动所在目录已加入系统PATH环境变量,或在代码中直接指定:
System.setProperty("webdriver.chrome.driver", "D:\\drivers\\chromedriver.exe"); // 替换为实际驱动路径 ChromeDriver driver = new ChromeDriver();
内容的提问来源于stack exchange,提问作者anuja jain
相关产品推荐
相关产品推荐

