Search code examples
seleniumselenium-webdriverautomated-testsnightwatch.jsremotewebdriver

Can nightwatch.js use usingServer from selenium-webdriver?


I have a suite of tests using local drivers built with nightwatch. Works well.

I am running a basic test using Perfecto Mobile and selenium-webdriver. It works with this example.(https://community.perfectomobile.com/series/20208/posts/1002862)

I am trying to connect my suite of nightwatch test to perfecto, but can't start selenium. If this is the url of the selenium server.

var url = "https://mobilecloud.perfectomobile.com/nexperience/perfectomobile/wd/hub";

I tried a few ways to set it up under nightwatch config, but can't make it work.

"selenium" : {
  "start_process" : true,
  "host" : "mobilecloud.perfectomobile.com/nexperience/perfectomobile/wd/hub"
}

Is there an equivalent to usingServer in nightwatch? I haven't seen anything in the docs.

driver = new webdriver.Builder().
  usingServer(url).
  withCapabilities(capabilities).
  build();

Solution

  • Turns out this was the setup needed.

    "test_settings" : {
      "perfecto" : {
        "use_ssl": true,
        "default_path_prefix": "/nexperience/perfectomobile/wd/hub",
        "selenium_port"  : 443,
        "selenium_host"  : "mobilecloud.perfectomobile.com",
        "desiredCapabilities": {
          "browserName": "xxx",
          "deviceName": "xxx",
          "user": "[email protected]",
          "password": "xxx",
          "platformName": "xxx"
        }
      }
    }
    

    The important part that didn't work at the time of writing the question: the default_path_prefix was not customizable.

    /wd/hub was the default prefix. But I really needed /nexperience/perfectomobile/wd/hub.

    Two days later, this commit was introduced. It is available in 0.9.5 release.

    https://github.com/nightwatchjs/nightwatch/commit/aa24c2c2334c42388318498f654d8fe2957967d1