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

Chrome上Nightwatch.js(Node)端到端Mocha测试启动卡壳求助

可能导致Nightwatch.js卡在"Starting Selenium Server"的原因及排查方向

我来帮你梳理下可能导致这个问题的几个常见原因,你可以逐个排查:

  • 端口被占用:虽然你配置的是4444端口,但这个端口很可能被其他进程占用了——比如之前没正常关闭的Selenium服务、残留的ChromeDriver进程,甚至是其他无关的应用。你可以用命令快速排查:

    • Windows终端执行:netstat -ano | findstr :4444
    • macOS/Linux终端执行:lsof -i :4444
      如果查到有占用的进程,杀掉它再重试测试。
  • 日志输出未开启:你提到没有日志输出,这会大大增加调试难度。其实可以在nightwatch.json里开启详细日志,帮你定位到底是Selenium启动失败,还是ChromeDriver连接出了问题。添加以下配置试试:

    "logging": {
      "level": "verbose",
      "output": true,
      "detailed_output": true
    }
    

    重新运行测试后,应该能看到更详细的启动过程日志。

  • Chrome与ChromeDriver版本不兼容:哪怕你重新下载了版本,也可能没匹配对。Chrome的大版本必须和ChromeDriver的大版本完全对应(比如Chrome 119.x对应ChromeDriver 119.x)。先打开Chrome的「设置→关于Chrome」确认浏览器版本,再下载对应版本的ChromeDriver,同时确保Selenium Standalone的版本也能兼容这个组合(一般新版Selenium支持较新的ChromeDriver)。

  • 系统权限或防火墙拦截:Selenium Server启动时可能需要特殊权限,或者被本地防火墙、杀毒软件拦截了。你可以临时关闭防火墙/杀毒软件试试,或者用管理员权限运行测试命令:Windows右键以管理员身份打开终端,macOS/Linux在命令前加sudo。

  • Node.js依赖冲突:项目里的Nightwatch、Selenium、Mocha等依赖版本可能存在不兼容的情况。试试删除node_modules文件夹和package-lock.json(或yarn.lock),然后重新执行npm install(或yarn install),让包管理器重新安装一套兼容的依赖版本。

  • Selenium启动路径配置模糊:有时候自动查找Selenium Server或ChromeDriver的路径会出错,你可以在nightwatch.json里明确指定它们的路径,比如:

    "selenium": {
      "start_process": true,
      "server_path": "./node_modules/selenium-standalone/.selenium/selenium-server/latest/selenium-server-standalone.jar",
      "cli_args": {
        "webdriver.chrome.driver": "./node_modules/selenium-standalone/.selenium/chromedriver/latest/chromedriver"
      }
    }
    

    这样能避免路径查找的不确定性。

  • 残留Chrome进程干扰:如果之前的测试进程没正常退出,残留的Chrome实例会占用资源,导致新的Selenium会话无法启动。打开任务管理器(Windows)或活动监视器(macOS),杀掉所有Chrome相关的进程,再重新运行测试。

内容的提问来源于stack exchange,提问作者Daniel.zZ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:08:15