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

Jenkins通过Docker-compose运行Grid测试报UnreachableBrowserException无法新建会话

问题背景

使用Jenkins通过Docker-compose在Selenium Grid上动态执行测试套件时抛出如下异常栈:

org.openqa.selenium.remote.DesiredCapabilities firefox
INFO: Using `new FirefoxOptions()` is preferred to `DesiredCapabilities.firefox()`
org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: '49d4c6ec544d', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '5.10.25-linuxkit', java.version: '1.8.0_292'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:573)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
    at WebdriverBase.GridDriverManager.setDriver(GridDriverManager.java:144)
    at WebdriverBase.GridDriverManager.getDriver(GridDriverManager.java:115)
    at stepdefinition.PurchaseWorkflow.init(PurchaseWorkflow.java:32)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

docker-compose.yml配置截图:
docker-compose.yml截图
已配置的Hub地址:http://selenium-hub:4444/wd/hub
当前现象:相同代码在本地Docker容器中运行一切正常,仅通过Jenkins触发测试时出现上述报错。

解决方案
  • 优先排查网络连通性:Jenkins执行测试任务的节点/容器必须和Selenium Grid集群处于同一个Docker网络下。本地运行正常是因为本地测试容器默认与Grid在同一网络,可正常解析selenium-hub主机名;而Jenkins任务默认使用独立Docker网络,无法解析主机名导致无法访问Hub。可在Jenkins任务中指定测试容器加入Grid所在的Docker网络,或者将Jenkins服务本身部署到Grid所在的网络中。
  • 替换废弃API:按照日志提示,将DesiredCapabilities.firefox()的写法替换为new FirefoxOptions()构造浏览器配置,避免Selenium废弃API带来的兼容问题。
  • 校验版本一致性:保证测试代码依赖的Selenium版本、Selenium Hub版本、节点Firefox浏览器版本、对应geckodriver版本完全匹配,避免跨版本兼容问题导致会话创建失败。
  • 增加前置连通性校验:在Jenkins测试任务执行前增加探测步骤,执行curl http://selenium-hub:4444/wd/hub/status确认Hub服务可正常访问,若探测失败直接中断任务,优先定位网络问题。
  • 调整Grid资源配置:如果Hub没有可用的会话槽位也会导致会话创建失败,可在docker-compose配置中为节点增加SE_NODE_MAX_SESSIONS参数调高最大会话数,同时检查节点是否正常注册到Hub。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 03:09:04