This is a new command added in Nightwatch v2.3.0, which allows users to pause the test at any point (by using .debug() command as a breakpoint) and use a REPL interface (made available in the terminal) to try out the available Nightwatch commands and assertions and see them get executed against the running browser, in real-time.

While doing that, users can also interact with the browser and use DevTools to debug. The interface also supports multi-line code input and auto-complete feature.


Note: Please use async/await while using the .debug() command, otherwise proper results won't be returned back to the interface.

it('demos debug command', async function(browser) {
  await browser.debug();

  // with no auto-complete
  await browser.debug({preview: false});

  // with a timeout of 6000 ms (time for which the interface
  // would wait for a result, default is 5500ms).
  await browser.debug({timeout: 6000})


describe('duckduckgo debug example', function() {
  // function passed as second argument to it should be async.
  it('Search Nightwatch.js and check results', async function(browser) {
    await browser
      .sendKeys('#search_form_input_homepage', ['Nightwatch.js'])
      .assert.textContains('.results--main', 'Nightwatch.js');

debug() command output

Improve this article