一个简单的 perform 命令,允许在回调中访问 Nightwatch API。如果您想读取其他命令设置的变量,这将很有用。

回调签名最多可以包含两个参数。

  • 无参数:回调运行,并在回调执行结束时立即完成 perform。
  • 一个参数:允许在回调中进行异步执行,为完成提供一个 done 回调函数作为第一个参数。
  • 两个参数:允许进行异步执行,并将 Nightwatch api 对象作为第一个参数传递,然后是 done 回调。

在异步执行的情况下,超时可以通过设置 asyncHookTimeout 全局变量来控制。有关更多信息,请参阅 使用测试全局变量

用法

示例

describe('perform example', function() {
  var elementValue;

  it('basic perform', function(browser) {
    browser
      .getValue('.some-element', function(result) {
        elementValue = result.value;
      })
      // other stuff going on ...

      // self-completing callback
      .perform(function() {
        console.log('elementValue', elementValue);
        // without any defined parameters, perform
        // completes immediately (synchronously)
      })

      // returning a Promise
      .perform(async function() {
        console.log('elementValue', elementValue);
        // potentially other async stuff going on

        return elementValue;
      })

      // DEPRECATED: asynchronous completion including api (client)
      .perform(function(client, done) {
        console.log('elementValue', elementValue);
        done();
    });
  });

  it('perform with async', function(browser) {
    const result = await browser.perform(async function() {
      return 100;
    });
    console.log('result:', result); // 100
  })
}

参数

名称 类型 描述
回调 功能

作为队列的一部分运行的功能。