Appium注册Selenium Grid节点失败:getaddrinfo ENOTFOUND错误求助
解决Appium注册Selenium Grid Hub失败的问题
你遇到的getaddrinfo ENOTFOUND http http:80错误,本质是Appium向Grid Hub注册时用错了地址格式——它把http当成了要连接的主机名,而不是URL的协议前缀,自然找不到对应的服务。我给你梳理几个排查和解决的步骤:
1. 先确认Selenium Hub的正确地址
你已经成功启动了Hub,默认情况下它的地址是http://你的主机IP:4444(本地运行就是http://localhost:4444)。可以先打开浏览器访问http://localhost:4444/grid/console,确认Hub确实在正常运行。
2. 修正Appium的Hub注册配置
不管是用命令行还是配置文件启动Appium节点,核心是要给Appium指定完整且正确的Hub注册地址:
方式一:命令行直接指定
启动Appium时加上--hub参数,传入完整的注册URL:
appium --hub http://localhost:4444/grid/register --udid 你的设备ID(从adb devices获取)
方式二:用节点配置文件
如果用JSON配置文件启动,确保configuration部分正确填写Hub的主机和端口,示例配置如下:
{ "capabilities": [ { "deviceName": "你的Android设备名称", "platformName": "Android", "udid": "xxxxxx(adb devices输出的设备ID)", "automationName": "UiAutomator2" } ], "configuration": { "hubHost": "localhost", "hubPort": 4444, "nodePort": 4723, "role": "node", "register": true } }
然后用命令启动:
appium --nodeconfig ./你的配置文件名.json
3. 额外验证点
- 确认
adb devices能正常识别你的设备,没有离线状态; - 检查Android环境变量(
ANDROID_HOME、PATH中的adb路径)是否配置正确,避免Appium无法连接设备; - 启动Appium节点后,回到Hub的console页面,查看是否能看到注册成功的Appium节点。
内容的提问来源于stack exchange,提问作者Mike Kiewicz
相关产品推荐
相关产品推荐

