End-to-end testing, the easy way.
Nightwatch.js is an integrated, easy to use End-to-End testing solution for web applications and websites, written in Node.js. It uses the W3C WebDriver API to drive browsers in order to perform commands and assertions on DOM elements.
Simple but powerful syntax which enables you to write tests very quickly, using only Javascript (Node.js) and CSS or Xpath selectors.
Comes with its own cloud testing platform - NightCloud.io (TBA). Works with other cloud testing providers, such as SauceLabs and BrowserStack.
Fluent and easy to work with Page Object Model support to better organise elements and sections, with support for both CSS or Xpath selectors.
Flexible command and assertion framework which makes it easy to extend to implement your application custom commands and assertions.
Built-in command-line test runner which runs the tests either sequentially or in parallel, with retries and implicit waits. Also supports grouping of test suites and tags.
Manages automatically Selenium or WebDriver services (ChromeDriver, GeckoDriver, Edge, Safari) in a separate child process.
JUnit XML reporting is built-in so you can integrate your tests in your build process with systems such as Teamcity, Jenkins, Hudson etc.
The test below opens the search engine Ecosia.org and searches for "nightwatch", then verifies if the term first result is the Nightwatch.js website.
module.exports = {
'Demo test Ecosia.org': function (browser) {
browser
.url('https://www.ecosia.org/')
.waitForElementVisible('body')
.assert.titleContains('Ecosia')
.assert.visible('input[type=search]')
.setValue('input[type=search]', 'nightwatch')
.assert.visible('button[type=submit]')
.click('button[type=submit]')
.assert.containsText('.mainline-results', 'Nightwatch.js')
.end();
}
};
Run and manage your Nightwatch tests
with absolutely no hassle, no config, no
nonsense.
Follow @nightwatchjs on Twitter to stay updated to new version release updates, announcements, and tutorials from our community.