Selenium Grid中Node与Hub无法通信问题求助
排查Selenium Hub与Node注册失败的方案
1. 网络连通性验证
- 在Win10虚拟机上执行
ping <Win11主机局域网IP>,确认虚拟机和主机网络互通。不通的话先排查虚拟机网络模式(如桥接/NAT是否配置正确)、双方防火墙是否拦截了通信。 - 用PowerShell命令
Test-NetConnection <Win11主机IP> -Port 4444测试Hub的4444端口是否可访问,若不通,检查Win11主机防火墙是否放行4444端口,或Hub启动时是否仅监听了127.0.0.1(需改为局域网IP)。
2. 启动命令参数核对
- Hub启动命令:确保指定正确的监听地址,比如
java -jar selenium-server-4.14.0.jar hub --host <Win11主机局域网IP>,避免默认仅监听本地回环地址导致虚拟机无法访问。 - Node启动命令:必须指向Hub的正确注册地址,示例:
java -jar selenium-server-4.14.0.jar node --hub http://<Win11主机IP>:4444/grid/register,注意不能用127.0.0.1替代主机IP。 - 确认Hub和Node使用的是完全相同版本的selenium-server包,版本不匹配会直接导致注册失败。
3. 日志与核心问题定位
- 你看到的
additional locator mechanisms: relative是Selenium 4加载相对定位器的正常日志,重复出现是因为Node在反复尝试注册。需查看完整日志定位真实错误:- Hub端:启动时添加日志输出命令
java -jar selenium-server-4.14.0.jar hub --log hub.log,查看日志中是否有Connection refused、Invalid registration request等明确错误。 - Node端:观察控制台输出的注册请求返回状态码(如404、500),以此判断是地址错误还是服务异常。
- Hub端:启动时添加日志输出命令
4. 额外排查点
- 关闭Win10虚拟机的代理设置,代理可能拦截Node到Hub的注册请求。
- 检查双方Java版本:Selenium 4.14.0要求Java 11及以上,执行
java -version确认版本达标,低版本Java会引发兼容性问题。
内容的提问来源于stack exchange,提问作者Gaylord
相关产品推荐
相关产品推荐

