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

Firefox驱动初始化失败:SessionNotCreatedException(NS_BINDING_ABORTED)求助

Firefox驱动初始化报错NS_BINDING_ABORTED问题排查与解决

环境信息

  • Firefox版本:112.0(64位)
  • Maven依赖:io.github.bonigarcia > webdrivermanager,版本5.3.2
  • GeckoDriver版本:0.33.0

错误信息

[main] INFO io.github.bonigarcia.wdm.WebDriverManager - Using geckodriver 0.33.0 (resolved driver for Firefox 112)
[main] INFO io.github.bonigarcia.wdm.WebDriverManager - Exporting webdriver.gecko.driver as C:\Users\subrav\.cache\selenium\geckodriver\win64\0.33.0\geckodriver.exe
org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: Error: NS_BINDING_ABORTED 

Driver info: org.openqa.selenium.firefox.FirefoxDriver
Command: [null, newSession {capabilities=[Capabilities {acceptInsecureCerts: true, browserName: firefox, moz:debuggerAddress: true, moz:firefoxOptions: {profile: UEsDBBQACAgIAHqol1YAAAAAAAA...}}], desiredCapabilities=Capabilities {acceptInsecureCerts: true, browserName: firefox, moz:debuggerAddress: true, moz:firefoxOptions: {profile: UEsDBBQACAgIAHqol1YAAAAAAAA...}}}]\n    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:165)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:183)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:229)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:157)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:150)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:146)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:131)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:127)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:112)

初始化驱动代码

WebDriverManager.firefoxdriver().setup();
FirefoxOptions firefoxOptions = new FirefoxOptions();

System.setProperty("webdriver.firefox.marionette", "true");
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE, "target/logs.txt");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("browser.download.folderList", 2);
firefoxProfile.setPreference("browser.download.manager.showWhenStarting", false);
firefoxProfile.setPreference("browser.download.dir", file.getAbsolutePath());
firefoxOptions.setProfile(firefoxProfile);
driver = new FirefoxDriver(firefoxOptions);

已尝试但无效的配置

firefoxOptions.setCapability("moz:debuggerAddress", false);
firefoxOptions.addArguments("--disable-blink-features=AutomationControlled");
firefoxProfile.setPreference("fission.autoStart", false);
firefoxProfile.setPreference("fission.bfcacheInParent", false);
firefoxProfile.setPreference("fission.webContentIsolationStrategy",0);
firefoxOptions.setProfile(firefoxProfile);
driver = new FirefoxDriver(firefoxOptions);

问题原因分析

NS_BINDING_ABORTED错误通常和以下因素相关:

  1. 版本隐性兼容问题:虽WebDriverManager匹配了GeckoDriver与Firefox版本,但部分组合仍存在未公开的兼容bug;
  2. 冗余配置冲突:代码中设置的webdriver.firefox.marionette属性在新版Selenium中已被弃用,会和FirefoxOptions的配置产生冲突;
  3. 进程残留:之前未正常关闭的Firefox/GeckoDriver进程占用资源,导致新会话无法创建;
  4. 权限不足:GeckoDriver或Firefox无足够权限访问下载目录或创建新进程。

解决方法

1. 清理冗余配置,简化初始化代码

移除已弃用的webdriver.firefox.marionette属性,添加必要的下载类型偏好避免弹窗阻塞:

WebDriverManager.firefoxdriver().setup();
FirefoxOptions firefoxOptions = new FirefoxOptions();

System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE, "target/logs.txt");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("browser.download.folderList", 2);
firefoxProfile.setPreference("browser.download.manager.showWhenStarting", false);
firefoxProfile.setPreference("browser.download.dir", file.getAbsolutePath());
// 根据实际下载文件类型调整MIME值
firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream,application/pdf,text/csv");
firefoxOptions.setProfile(firefoxProfile);
driver = new FirefoxDriver(firefoxOptions);

2. 升级依赖版本

将WebDriverManager升级到最新稳定版,确保依赖兼容性:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>5.5.3</version>
</dependency>

3. 清理残留进程

启动驱动前强制关闭所有相关进程(Windows示例):

// 关闭Firefox和GeckoDriver进程
Runtime.getRuntime().exec("taskkill /F /IM firefox.exe");
Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe");
Thread.sleep(2000); // 等待进程完全关闭

4. 检查权限与路径

  • 确认下载目录file.getAbsolutePath()存在且有读写权限;
  • 以管理员身份运行测试程序,避免权限不足问题。

5. 禁用Sandbox模式

如果上述方法无效,添加禁用sandbox的启动参数:

firefoxOptions.addArguments("--no-sandbox");
firefoxOptions.addArguments("--disable-dev-shm-usage");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:00:42