Nightwatch setup
1. Download Node js from – https://nodejs.org/download/ and install
2. Download Selenium server from http://docs.seleniumhq.org/download/
3. Navigate to any directory and download nightwatch from command line
npm install nightwatch

4. Create the following folder structure –

Where “Project” is the root directory
5. Now copy the nightwatch folder (which was downloaded by cmd) and place it – “Project/lib/nightwatch” path
6. Open Node directory (example – C:\Program Files\nodejs\node_modules) . Copy “npm” folder and place it in “Project/lib/npm” directory
7. Place selenium-server-standalone-{VERSION}.jar in Project/lib/selenium
8. Create two blank folder “reports” and “tests” on root directory.
9. In root folder create configuration file (nightwatch.json) as mentioned in http://nightwatchjs.org/guide
{
"src_folders" : ["tests"],
"output_folder" : "reports",
"custom_commands_path" : "",
"custom_assertions_path" : "",
"page_objects_path" : "",
"globals_path" : "",
"selenium" : {
"start_process" : false,
"server_path" : "",
"log_path" : "",
"host" : "127.0.0.1",
"port" : 4444,
"cli_args" : {
"webdriver.chrome.driver" : "",
"webdriver.ie.driver" : ""
}
},
"test_settings" : {
"default" : {
"launch_url" : "http://localhost",
"selenium_port" : 4444,
"selenium_host" : "localhost",
"silent": true,
"screenshots" : {
"enabled" : false,
"path" : ""
},
"desiredCapabilities": {
"browserName": "firefox",
"javascriptEnabled": true,
"acceptSslCerts": true
}
},
"chrome" : {
"desiredCapabilities": {
"browserName": "chrome",
"javascriptEnabled": true,
"acceptSslCerts": true
}
}
}
}
10. Create “nightwatch.js” file on root directory and place the following line –
require('E:/Project/lib/nightwatch/bin/runner.js');
11. Now navigate to “test” folder and write the following code and save it as “sample.js” –
module.exports = {
'Demo test Google' : function (browser) {
browser
.windowMaximize()
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'nightwatch')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.pause(1000)
.assert.containsText('#main', 'Night Watch')
.end();
}
};
12. Now open a cmd and navigate to the “E:\Project\lib\selenium” and run the server as
java -jar selenium-server-standalone-2.45.0.jar
Note : We can skip this step if we use the following configuration in our json file
"selenium" : {
"start_process" : true,
"server_path" : "lib/selenium/selenium-server-standalone-2.45.0.jar",
"start_session" : true,
"log_path" : "",
"host" : "127.0.0.1",
"port" : 4444,
"cli_args" : {
"webdriver.chrome.driver" : "",
"webdriver.ie.driver" : ""
}
}
13. Now open another cmd and navigate to root directory – “E:\Project” and run the following code-
node nightwatch.js –t tests\sample.js
14. If everything goes well , the browser will open and the output should be looks like –

[screenshot has an error it must be “-t tests\sample.js”]
Note : If we skip step no 12 then the output should be –

The final root folder should looks like –

That’s it 🙂

how running in chrome?
Just change the config file –
add “browserName”: “chrome” like –
“test_settings” : {
“default” : {
“launch_url” : “http://localhost”,
“selenium_port” : 4444,
“selenium_host” : “localhost”,
“silent”: true,
“screenshots” : {
“enabled” : false,
“path” : “”
},
“desiredCapabilities”: {
“browserName”: “chrome”,
“javascriptEnabled”: true,
“acceptSslCerts”: true
}
}
and “webdriver.chrome.driver” : “lib/chromedriver.exe”, like –
“selenium” : {
“start_process” : true,
“server_path” : “lib/selenium/selenium-server-standalone-2.53.0.jar”,
“start_session” : true,
“log_path” : “”,
“host” : “127.0.0.1”,
“port” : 4444,
“cli_args” : {
“webdriver.chrome.driver” : “lib/chromedriver.exe”,
“webdriver.ie.driver” : “”
}
}
Hello,
You created a folder called ‘tests’ but in your instructions that the user needs to put in the CL to run the test is ‘test\sampletest.js’ when I think it should be ‘tests\sampletest.js’
Yes , You are correct ! It must be either ‘tests\sample.js’ or ‘test\sample.js’ for entire setup. Nice catch 🙂
Forgot to put the rest though……
you’re tutorial is one of the few that I was able to use to get everything up and running on a Windows machine.
Thank you so much!
Thank you!!!