You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium Java启动Edge浏览器时遇SessionNotCreatedException错误求助

Selenium Java启动Edge浏览器崩溃问题解决

问题场景

尝试通过以下Selenium Java代码启动Edge浏览器:

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setBinary("C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe");
chromeOptions.setExperimentalOption("useAutomationExtension", false);
chromeOptions.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));

if (browser.equals("chrome")) {
    WebDriverManager.chromedriver().setup();
    tlDriver.set(new ChromeDriver());
} else if (browser.equals("firefox")) {
    WebDriverManager.firefoxdriver().setup();
    tlDriver.set(new FirefoxDriver());
} else if (browser.equals("InternetExplorerDriver")) {
    WebDriverManager.edgedriver().setup();
    tlDriver.set(new EdgeDriver(chromeOptions));
} else {
    System.out.println("Please pass the correct browser value: " + browser);
}

错误现象

运行后抛出SessionNotCreatedException,核心错误提示:

unknown error: Microsoft Edge failed to start: crashed.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from msedge location C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe is no longer running, so msedgedriver is assuming that msedge has crashed.)

完整错误栈:

@sanity
Scenario Outline: MYTIP - Customer JTG Scenario                    # src/test/java/features/Features/sanity.feature:22
Starting Microsoft Edge WebDriver 103.0.1264.77 (2b250f2585e4f7418e51e230b93685cdc0ed9db5) on port 62823
To submit feedback, report a bug, or suggest new features, please visit https://github.com/MicrosoftEdge/EdgeWebDriver

Only local connections are allowed.
Please see https://aka.ms/WebDriverSecurity for suggestions on keeping Microsoft Edge WebDriver safe.

Microsoft Edge WebDriver was started successfully.
[1660649521.964][WARNING]: Deprecated Microsoft Edge option is ignored: useAutomationExtension
[1660649521.965][WARNING]: Deprecated Microsoft Edge option is ignored: useAutomationExtension
      org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: Microsoft Edge failed to start: crashed.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from msedge location C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe is no longer running, so msedgedriver is assuming that msedge has crashed.)
Build info: version: '4.1.2', revision: '9a5a329c5a'
System info: host: 'EQ-EQ6296022', ip: '10.225.5.135', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_202'
Driver info: org.openqa.selenium.edge.EdgeDriver
Command: [null, newSession {capabilities=[Capabilities {ms:edgeOptions: {args: [], binary: C:\Program Files (x86)\Micr..., excludeSwitches: [enable-automation], extensions: [], useAutomationExtension: false}}, Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: C:\Program Files (x86)\Micr..., excludeSwitches: [enable-automation], extensions: [], useAutomationExtension: false}}], desiredCapabilities=Capabilities {browserName: chrome, goog:chromeOptions: {args: [], binary: C:\Program Files (x86)\Micr..., excludeSwitches: [enable-automation], extensions: [], useAutomationExtension: false}, ms:edgeOptions: {args: [], binary: C:\Program Files (x86)\Micr..., excludeSwitches: [enable-automation], extensions: [], useAutomationExtension: false}}}]    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:84)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:62)
    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:558)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:245)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:161)
    at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:108)
    at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:52)
    at org.openqa.selenium.edge.EdgeDriver.<init>(EdgeDriver.java:59)
    at qa.factory.DriverFactory.init_driver(DriverFactory.java:62)
    at stepDefinations.Hooks.launchBrowser(Hooks.java:37)

修复方案

1. 替换ChromeOptions为Edge专属配置类

针对Edge浏览器,应使用EdgeOptions而非ChromeOptions,避免兼容性冲突。同时useAutomationExtension参数已被Edge弃用,可直接移除。

2. 修正浏览器判断条件

原代码中判断Edge的条件错误(使用了InternetExplorerDriver),需改为匹配实际传入的浏览器标识,比如"edge"。

3. 添加关键启动参数

添加--remote-debugging-port和--no-sandbox参数,解决DevToolsActivePort文件缺失问题:

  • --remote-debugging-port:指定调试端口,确保Driver能连接到浏览器实例
  • --no-sandbox:关闭沙箱模式,避免权限导致的启动失败

4. 确保Driver与浏览器版本匹配

WebDriverManager通常会自动匹配版本,若仍有问题,可手动指定浏览器版本:

WebDriverManager.edgedriver().browserVersion("103.0.1264.77").setup();

修改后的完整代码

EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions.setBinary("C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe");
edgeOptions.addArguments("--remote-debugging-port=9222");
edgeOptions.addArguments("--no-sandbox");
edgeOptions.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));

if (browser.equals("chrome")) {
    WebDriverManager.chromedriver().setup();
    tlDriver.set(new ChromeDriver());
} else if (browser.equals("firefox")) {
    WebDriverManager.firefoxdriver().setup();
    tlDriver.set(new FirefoxDriver());
} else if (browser.equals("edge")) {
    WebDriverManager.edgedriver().setup();
    tlDriver.set(new EdgeDriver(edgeOptions));
} else {
    System.out.println("Please pass the correct browser value: " + browser);
}

内容的提问来源于stack exchange,提问作者gaurav kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:21:31