概述

这是一个在 Nightwatch v2.3.0 中添加的新命令,它允许用户在任何时候暂停测试(通过使用 .debug() 命令作为断点),并使用 REPL 接口(在终端中提供),尝试可用的 Nightwatch 命令和断言,并在运行的浏览器上实时查看它们的执行结果。

在执行此操作时,用户还可以与浏览器交互并使用 DevTools 进行调试。该接口还支持多行代码输入和自动完成功能。

用法

注意: 在使用 .debug() 命令时,请使用 async/await,否则不会将正确的结果返回到接口。

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

示例

tests/duckDuckGo.js
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
      .url('https://duckduckgo.com')
      .debug()
      .waitForElementVisible('#search_form_input_homepage')
      .sendKeys('#search_form_input_homepage', ['Nightwatch.js'])
      .click('#search_button_homepage')
      .assert.visible('.results--main')
      .assert.textContains('.results--main', 'Nightwatch.js');
  });
});

debug() command output