Java-Selenium 4.18.1无法启动新会话问题求助
Selenium无法启动新会话问题排查
问题背景
此前使用Python版Selenium 4.9.0时,下载WebDriver后通过driver = webdriver.Edge(service=Service(path_to_webdriver))即可正常运行,但切换到Java编写代码时,出现无法启动新会话的问题,且Edge、Firefox浏览器均无法启动。
测试代码
import org.openqa.selenium.WebDriver; import org.openqa.selenium.edge.EdgeDriver; public class Main { public static void main(String[] args) { System.setProperty("webdriver.edge.driver", "PATH TO WEB DRIVER"); WebDriver driver = new EdgeDriver(); driver.get("https://www.selenium.dev/selenium/web/web-form.html"); driver.quit(); } }
报错信息
运行后抛出异常:
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure. Host info: host: 'myuser', ip: '192.168.56.1' at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:537) 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.edge.EdgeDriver.<init>(EdgeDriver.java:61) at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:57) at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:49) at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:45) at com.aut.CoursesGrabber.main(CoursesGrabber.java:19) Caused by: org.openqa.selenium.WebDriverException: Driver server process died prematurely. Build info: version: '4.18.1', revision: 'b1d3319b48' System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '20' Driver info: driver.version: EdgeDriver at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:246) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:117) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:519)
已尝试操作
- 将Edge浏览器及对应WebDriver更新至最新版本
- 移除
System.setProperty配置,使用Selenium 4.x内置的DriverManager机制(复制官方示例代码) - 更换为Firefox浏览器测试,问题依旧
可能原因及解决方向
- 权限不足:Windows系统下,程序可能无足够权限启动浏览器或WebDriver。尝试以管理员身份运行IDE/编译后的程序,或检查WebDriver文件权限,确保当前用户拥有执行权限。
- Java版本兼容问题:当前使用Java 20,Selenium 4.18.1对高版本Java可能存在兼容问题。建议降级到Java 17(LTS版本),这是Selenium官方推荐的兼容版本。
- 安全软件拦截:杀毒软件或防火墙可能阻止WebDriver进程启动浏览器。临时关闭安全软件测试,或将WebDriver和浏览器路径添加到安全软件信任列表。
- 浏览器路径未正确识别:即使移除
System.setProperty,DriverManager可能无法自动识别浏览器路径,可手动指定:EdgeOptions options = new EdgeOptions(); options.setBinary("C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"); // 替换为实际路径 WebDriver driver = new EdgeDriver(options); - 进程残留:之前的浏览器或WebDriver进程未完全退出,占用资源。打开任务管理器,结束所有
msedge.exe、msedgedriver.exe(或geckodriver.exe)进程后重新测试。 - 依赖冲突:项目中可能存在旧版本Selenium依赖或冲突库。检查Maven/Gradle依赖,确保仅引入
selenium-java4.18.1的完整依赖,无其他版本冲突。
内容的提问来源于stack exchange,提问作者Kapo
相关产品推荐
相关产品推荐

