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

Selenium Grid节点注册失败求助:非环回IP未找到及反射访问警告

解决Selenium Grid节点注册的两个核心问题

我来帮你拆解这两个场景下的问题,逐个给出可行的解决方案:

一、LAN环境下的非回环IP检测失败

报错org.openqa.selenium.WebDriverException: Could not find a non-loopback ip4 address for this machine的原因是,Selenium节点默认会自动扫描本机的非回环IP,但你的Ubuntu虚拟机在LAN网络下,节点没能正确识别到可用的对外IP。

解决办法二选一:

  • 启动命令手动指定IP:在节点启动命令末尾加上-host 你的虚拟机LAN IP(比如你的虚拟机LAN IP是192.168.2.x),命令示例:
    java -Dwebdriver.gecko.driver="/home/mehamgn/Documents/drivers/geckodriver/" -jar selenium-server-standalone-3.12.0.jar -role node -nodeConfig grid_node.json -host 192.168.2.x
    
  • 配置文件添加IP字段:直接在grid_node.json里新增"host": "你的虚拟机LAN IP",让节点固定用这个IP注册。

二、WiFi环境下节点无法连接Hub的问题

从日志能看到,节点一直在尝试连接localhost/127.0.0.1:4444,但你配置文件里明明写了hubHost":"192.168.2.8,这说明配置没生效,加上网络连通性可能有问题,咱们一步步来:

1. 修正配置文件的Hub地址参数

Selenium 3.x的节点配置中,用hubUrl指定完整的Hub注册URL比分开写hubHost和hubPort更可靠,不容易出现解析错误。修改你的grid_node.json,把hubHost和hubPort替换成:

"hubUrl": "http://192.168.2.8:4444/grid/register"

2. 验证虚拟机到Windows主机的网络连通性

先在Ubuntu虚拟机里ping Windows主机的IP192.168.2.8,如果ping不通:

  • 检查VirtualBox的网络模式,切换到桥接模式,让虚拟机直接接入WiFi网络,获取和主机同网段的IP;
  • 暂时关闭Windows主机的防火墙(测试用),或者在防火墙上添加入站规则,允许4444端口的访问。

3. 处理非法反射访问警告

这个警告是Java 9+和旧版本Selenium(3.12.0)的兼容性问题,Selenium 3.12.0对Java 9+的模块化支持不完善。解决办法:

  • 最稳妥的是降级Java到8版本,Selenium 3.x对Java 8的支持最完善;
  • 升级Selenium Server到3.141.59及以上版本,新版本修复了这个反射访问的问题。

最后验证步骤

  1. 先确认Windows主机的Hub已经启动,在虚拟机的浏览器里打开http://192.168.2.8:4444/grid/console,能看到Hub控制台说明网络没问题;
  2. 用修改后的配置文件重新启动节点,观察日志是否显示“Registered node successfully”之类的成功信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:15:33