尝试在端口4444上连接到Selenium Server时超时(使用Nightwatch.js测试)

时间:2019-04-30 11:21:02

标签: reactjs nightwatch.js selenium-server

我正在尝试使用nightwatch.js与多个浏览器并行运行测试,但仍然出现此错误:

    Timeout while trying to connect to Selenium Server on port 4444.
       at Socket.socketErrorListener (_http_client.js:397:9)
       at emitErrorNT (internal/streams/destroy.js:91:8)
       at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
       at processTicksAndRejections (internal/process/next_tick.js:76:17)
    11:22:47.036 INFO [GridLauncherV3.parse] - Selenium server version: 
    3.141.59, revision: e82be7d358
    11:22:47.576 INFO [GridLauncherV3.lambda$buildLaunchers$3] - Launching 
    a standalone Selenium Server on port 4444
    2019-04-30 11:22:47.898:INFO::main: Logging initialized @2109ms to 
    org.seleniumhq.jetty9.util.log.StdErrLog
  • npm 6.7.0
  • 守夜人1.0.19
  • java 1.8.0_212

我的package.json

"name": "react-crud",
  "version": "1.0.0",
  "description": "A simple CRUD application in React JS with PHP as the server-side language, and MySQL Database.",
  "main": "nightwatch.conf.js",
  "directories": {
    "test": "tests"
  },
  "dependencies": {
    "chromedriver": "^2.46.0",
    "geckodriver": "^1.16.2",
    "react": "^15.6.2",
    "selenium-server-standalone-jar": "^3.141.5",
    "selenium-standalone": "^6.16.0",
    "selenium-webdriver": "^4.0.0-alpha.1"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  }

问题是,当我尝试仅针对chrome对此nightwatch.json进行测试时,它可以正常工作:

  "src_folders" : ["tests"],

  "webdriver" : {
    "start_process": true,
    "server_path": "node_modules/.bin/chromedriver",
    "port": 9515
  },

  "test_settings" : {
    "default" : {
      "desiredCapabilities": {
        "browserName": "chrome"
      }
    }
  }
}

但是当我尝试使用Selenium服务器时,我不断收到我刚刚在顶部键入的错误消息:

{
  "src_folders": [
    "tests"
  ],
  "output_folder": "reports",
  "selenium": {
    "start_process": true,
    "server_path": "selenium-server-standalone-3.141.59.jar",
    "log_path": "",
    "port": 4444,
    "cli_args": {
      "webdriver.chrome.driver": "bin/chromedriver",
      "webdriver.gecko.driver": "bin/geckodriver",
    }
  },
  "test_workers": {
    "enabled": true,
    "workers": "auto"
  },
  "test_settings": {
    "default": {
        "desiredCapabilities": {
          "browserName": "chrome"
        }
      },
    "firefox": {
      "desiredCapabilities": {
        "browserName": "firefox",
        "marionette": true
      }
    }
  }
}

提前谢谢!

1 个答案:

答案 0 :(得分:0)

  • 在终端中打开新标签页
  • 运行$ npm install webdriver-manager
  • 运行$ webdriver-manager更新
  • 运行$ webdriver-manager start
  • 在Nightwatch配置中使用Webdriver而不是Selenium-server,并通过此自定义运行程序脚本从新的终端选项卡启动Nightwatch:
// Custom runner.js for Nightwatch
const Nightwatch = require('nightwatch');

// read the CLI arguments
Nightwatch.cli(function(argv) {
  argv._source = argv['_'].slice(0);

  // create the Nightwatch CLI runner
  const runner = Nightwatch.CliRunner(argv);

  // setup and run tests
  runner
    .setup()
    .runTests()
    .catch(err => console.error(err));
});