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

在Docker中运行Selenium测试时出现UnreachableBrowserException连接拒绝错误

解决Docker Toolbox + Selenium RemoteWebDriver的UnreachableBrowserException问题

你遇到的核心问题是Docker Toolbox的网络特性导致localhost无法访问到Docker容器内的Selenium Hub。Windows 10 Home版的Docker Toolbox依赖VirtualBox创建的Linux虚拟机运行Docker,你代码里的localhost指向的是Windows宿主机本身,但Selenium Hub实际运行在虚拟机内部,因此会出现连接被拒绝的错误。下面是具体的解决步骤:

1. 获取Docker虚拟机的实际IP

打开Docker Quickstart Terminal,执行以下命令获取默认虚拟机的IP地址:

docker-machine ip default

你会得到类似192.168.99.100的结果,这才是你应该用来连接Selenium Hub的正确地址。

2. 修正测试代码中的连接配置

把代码里的localhost替换成刚才拿到的虚拟机IP,同时按照提示更新Chrome的配置方式(官方推荐用ChromeOptions替代旧的DesiredCapabilities):

// 替换成你的Docker虚拟机实际IP
URL url = new URL("http://192.168.99.100:4444/wd/hub");
ChromeOptions options = new ChromeOptions();
RemoteWebDriver rDr = new RemoteWebDriver(url, options);
rDr.get("https://www.google.com");
System.out.println(rDr.getTitle());
rDr.quit();

3. 验证Selenium Hub和Chrome节点的运行状态

确保你已经正确启动了Selenium Hub和Chrome节点容器:

# 启动Selenium Hub容器
docker run -d -p 4444:4444 selenium/hub:3.141.59

# 启动Chrome节点并关联到Hub
docker run -d --link selenium-hub:hub selenium/node-chrome:3.141.59

启动完成后,在浏览器中访问http://<你的虚拟机IP>:4444/grid/console,确认Chrome节点已经成功注册到Hub上。

4. 排查防火墙与端口映射问题

  • 检查Windows防火墙是否阻止了虚拟机的4444端口访问,必要时可临时关闭防火墙进行测试。
  • 确认启动Hub容器时的端口映射参数-p 4444:4444已正确设置,确保宿主机能将请求转发到虚拟机内部的Hub服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 13:32:49