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

Nightwatch运行测试报Connection Refused 已启动Selenium Server仍连接失败

Nightwatch运行用例报「Connection Refused! Is Selenium Server Started?」排查方案(已确认Selenium启动场景)

以下步骤按问题出现概率从高到低排序,逐一排查即可:

  • 第一步:核对端口、Host配置一致性
    先查看Selenium启动终端的日志,找到类似Selenium Server is up and running on port xxxx的记录,记好实际监听端口。打开nightwatch.json找到selenium配置块,确认两个参数:
    1. port值必须和刚才查到的Selenium实际监听端口完全一致,Selenium默认端口是4444,但如果启动时4444被其他服务占用,Selenium会自动切换端口,配置没同步就会报连接拒绝
    2. 本地启动Selenium的场景下,host值必须填127.0.0.1,不要填公网IP、错误的局域网地址,也不要留空
      快速验证方式:Selenium启动后直接在浏览器访问http://127.0.0.1:你的Selenium端口/wd/hub/static/resource/hub.html,能正常打开Selenium控制台就说明服务本身运行正常,问题出在配置或兼容层面。
  • 第二步:排查协议、运行模式错配
    如果你用的是Selenium 4及以上版本,默认启用HTTP/2,搭配v1.x版本的Nightwatch(很多使用Node14的用户默认安装的是旧版Nightwatch)时,因为旧版Nightwatch只支持HTTP/1.1请求,会直接被拒绝连接。两种解决方式二选一:
    1. 启动Selenium时加参数禁用HTTP/2:java -jar selenium-server-standalone-对应版本号.jar --http2-enabled false
    2. 把Nightwatch升级到兼容Selenium4的版本
      另外注意不要混配运行模式:如果是直连浏览器驱动(ChromeDriver/GeckoDriver)不走Selenium的模式,要把selenium.start_process设为false,同时正确配置webdriver块下对应浏览器的驱动路径、端口,不要同时开启Selenium配置和直连配置。
  • 第三步:排查端口占用、防火墙拦截
    执行命令确认端口监听的进程是Selenium本身:
    • Windows系统执行:netstat -ano | findstr "你配置的Selenium端口"
    • Mac/Linux系统执行:lsof -i:你配置的Selenium端口
      如果返回的进程不是Selenium对应的java进程,说明端口被其他服务占用,要么停掉占用端口的服务,要么给Selenium更换启动端口,同步修改Nightwatch配置即可。
      另外可以临时关闭本地防火墙、安全防护软件测试一次,如果关闭后能正常连接,给node进程、Selenium端口添加本地放行规则就行。
  • 第四步:核对版本兼容性(当前使用Node v14.16.0需重点关注)
    1. Nightwatch v3及以上版本要求Node >=16,在Node14环境下安装会出现底层请求异常,直接报连接拒绝,Node14环境最高安装v2.6.x版本的Nightwatch即可
    2. 不建议用Selenium 4.6+版本搭配v2.x版本的Nightwatch,协议兼容问题较多,优先选Selenium 3.141.59稳定版搭配Node14+Nightwatch2.x的组合,踩坑概率最低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 12:51:18