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

使用RemoteWebDriver无法连接远程机器 Selenium Grid会话创建失败

Selenium Grid Hub与Node注册正常但无法创建测试会话问题排查方案

核心问题表现

  • 部署架构:Linux节点运行Grid Hub,Windows Server 2008 R2节点运行Grid Node,两端注册流程无报错,Hub控制台可正常识别Node上配置的5个Chrome测试槽位
  • 测试逻辑:通过RemoteWebDriver或WebDriverManager向Hub发起Chrome会话创建请求,配置了忽略证书、窗口最大化等启动参数
  • 报错特征:会话创建返回500状态码,核心错误为org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: Unable to create new service: ChromeDriverService,日志中驱动版本显示为unknown,Hub侧日志显示已匹配到Node的Chrome槽位但服务启动失败

根因排查优先级

按出现概率从高到低排查:

  1. Windows Node节点ChromeDriver配置异常:Selenium 3.x版本的Grid Node不会自动管理浏览器驱动,若Node本地未放置ChromeDriver、驱动路径未加入系统PATH、或Node启动时未指定驱动路径,就会出现驱动版本识别为unknown的报错。验证方式:直接在Windows Node的命令行执行chromedriver --version,若提示找不到命令即可确认该问题。
  2. 全链路Selenium版本不兼容:日志明确显示Grid端使用的是2017年发布的selenium-server-standalone-3.5.3,但客户端测试代码引入的Selenium依赖为4.1.2,跨大版本的新会话握手协议、能力参数格式存在差异——Selenium 4使用的goog:chromeOptions参数前缀在3.5.3版本中未做兼容,3.x版本原生识别的参数前缀为chromeOptions,会导致会话参数解析失败。
  3. Chrome浏览器与驱动版本不匹配:即使Node上存在ChromeDriver,若驱动大版本与本地安装的Chrome浏览器版本不一致,同样会导致ChromeDriverService启动失败。需注意Windows Server 2008 R2最高支持Chrome 109.x版本,更高版本的Chrome无法在该系统上运行,对应ChromeDriver也必须匹配109版本。
  4. 系统权限/网络拦截:Windows Node防火墙未开放Node默认通信端口(5555)、启动Node的账号没有驱动/浏览器的执行权限,也会导致服务启动失败。

落地解决方案

方案一:统一全链路版本(推荐,运维成本最低)

将Hub、Node使用的Selenium Server版本与客户端依赖版本统一为4.1.2,Selenium 4内置驱动自动管理能力,Node启动时会自动匹配本地浏览器版本下载对应驱动,无需手动配置:

  1. 启动Hub服务命令:
java -jar selenium-server-4.1.2.jar hub
  1. 启动Node服务命令(替换为实际Hub的公网IP):
java -jar selenium-server-4.1.2.jar node --hub http://<Linux Hub公网IP>:4444
  1. 待Node日志显示注册成功后,直接执行测试即可。

方案二:保留Selenium 3.5.3版本的适配步骤

若因环境限制无法升级Selenium版本,按以下步骤配置:

  1. 在Windows Node节点安装109及以下版本的Chrome浏览器(适配Windows Server 2008 R2系统)
  2. 下载与Chrome版本完全对应的ChromeDriver,解压到本地固定目录(例如C:\selenium\drivers\),将该目录加入系统PATH环境变量,重启命令行后执行chromedriver --version验证可正常返回版本号
  3. 将客户端测试代码的Selenium依赖版本降级为3.5.3,与Grid端版本完全对齐,避免协议不兼容
  4. 启动Node时显式指定ChromeDriver路径,命令如下:
java -Dwebdriver.chrome.driver=C:\selenium\drivers\chromedriver.exe -jar selenium-server-standalone-3.5.3.jar -role node -hub http://<Linux Hub公网IP>:4444/grid/register/
  1. 待Node日志显示ChromeDriver版本信息后,再发起测试请求即可正常创建会话。

额外避坑说明

  • Chrome启动参数--no-sandbox为Linux环境专属参数,Windows环境下添加属于无效配置,不会影响运行但无实际作用
  • 配置环境变量后必须重启启动Node的命令行窗口,否则新的环境变量不会生效
  • 不要用权限受限的系统服务账号启动Node进程,否则会出现无法调用浏览器/驱动的权限问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:42:25