コールバックでNightwatch APIにアクセスできるシンプルなperformコマンドです。他のコマンドで設定された変数を読み取りたい場合に便利です。

コールバックのシグネチャは、最大2つのパラメータを持つことができます。

  • パラメータなし: コールバックが実行され、コールバックの実行終了時にperformが直ちに完了します。
  • パラメータ1つ: コールバック内での非同期実行が可能で、完了のためのdoneコールバック関数が最初の引数として提供されます。
  • パラメータ2つ: 非同期実行が可能で、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
  })
}

パラメータ

名前 説明
callback function

キューの一部として実行する関数。