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

Selenium Grid远程测试报错:SessionNotCreatedException(GeckoDriverService)

解决Selenium Grid远程测试的SessionNotCreatedException问题

我来帮你定位这个问题——你遇到的SessionNotCreatedException,核心原因是本地代码的GeckoDriver和Firefox配置无法作用于远程节点,结合你的代码和报错信息,给你几个针对性的修复方案:

1. 远程节点必须单独配置GeckoDriver

你在本地代码里设置的System.setProperty("webdriver.gecko.driver", "...")只对本地运行的Driver生效,远程节点上需要在启动时指定GeckoDriver路径:

  • 启动远程节点时,通过JVM参数指定GeckoDriver位置(Windows环境示例):
    java -Dwebdriver.gecko.driver=C:\geckodriver-v0.19.1-win64\geckodriver.exe -jar selenium-server-standalone-3.8.1.jar -role node -hub http://[HubIP]:4444/grid/register
    
  • 额外注意:GeckoDriver版本要和远程节点的Firefox版本匹配——你用的GeckoDriver 0.19.1对应Firefox 55~57版本,如果远程节点的Firefox版本不在这个范围,直接换对应版本的GeckoDriver即可。

2. 移除本地代码中的Firefox二进制路径配置

你代码里设置的FirefoxDriver.BINARY是本地Firefox的路径,远程节点的Firefox路径大概率和本地不同,这个配置会干扰远程会话创建:

  • 删掉这行代码:
    capabilities.setCapability(FirefoxDriver.BINARY,new File("C:\\Program Files\\Mozilla Firefox\\firefox.exe").getAbsolutePath());
    
  • 如果远程节点的Firefox不在系统默认路径,启动节点时通过JVM参数指定:
    java -Dwebdriver.firefox.bin=C:\Program Files\Mozilla Firefox\firefox.exe -Dwebdriver.gecko.driver=C:\geckodriver-v0.19.1-win64\geckodriver.exe -jar selenium-server-standalone-3.8.1.jar -role node
    

3. 确保Selenium版本完全一致

本地客户端用的是Selenium 3.8.1,远程节点的selenium-server-standalonejar包必须是完全相同的版本,版本不匹配会导致会话协商失败。

快速验证步骤

  • 先在远程节点本地直接运行GeckoDriver测试,确认Firefox能正常启动,排除节点本身的环境问题;
  • 检查远程节点是否成功注册到Grid Hub,通过Hub的控制台页面查看节点状态;
  • 启动节点时添加日志参数,查看详细报错信息,方便定位:
    java -Dwebdriver.gecko.driver=C:\geckodriver-v0.19.1-win64\geckodriver.exe -jar selenium-server-standalone-3.8.1.jar -role node -hub http://[HubIP]:4444/grid/register -log node_debug.log
    

修改后的简化测试代码:

public static void main(String[] args) throws MalformedURLException { 
    String nodeURL = "http://10.132.48.16:5566/wd/hub";
    DesiredCapabilities capabilities = DesiredCapabilities.firefox();
    WebDriver driver = new RemoteWebDriver(new URL(nodeURL), capabilities ); 
    
    driver.get("http://google.com"); 
    System.out.println(driver.getTitle());
    
    driver.quit(); // 记得关闭会话,避免资源泄漏
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:26:27