reactjsnightwatch.jsselenium-server

Timeout while trying to connect to Selenium Server on port 4444 (Testing with Nightwatch.js)


I am trying to run a test in parallel with multiple browsers using nightwatch.js but I keep having this error:

    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

my 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"
  }

The thing is, when I try to test with this nightwatch.json only for chrome it works:

  "src_folders" : ["tests"],

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

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

but when I try to use selenium server I keep getting the error I just typed on the top:

{
  "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
      }
    }
  }
}

Thank you in advance!


Solution

  • // 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));
    });