1

必要なもの:

Nightmare をメイン ヘルパーとして CodeceptJS で E2E テストを行い、要素の存在を確認し、結果に応じて一連のアクションなどを実行し続けます。

サンプルコード:

class EventsHelper extends Helper {

  isExistsElement(selector) {
    let browser = this.helpers['Nightmare'].browser;
    return browser.evaluate((selector) => {
      return new Promise(resolve => {
        let element = document.querySelector(selector);
        resolve(element || false);
      });
    }, selector);
  }
}
module.exports = EventsHelper;

Scenario('Test 1', async (I) => {
  const isButtonRendered = await I.isExistsElement('#button');

  if (isButtonRendered) {
    I.see('Message that is displayed only if the button exists.');
    I.click('#button');
  } else {
    I.see('Alternative message that appears if this button does not exist.');
  }
});

このコード例の現在の結果は次のとおりです。 - ボタンが存在する場合。

Evaluation timed out after 30000msec.  Are you calling done() or resolving your promises?
  • それ以外の場合、ボタンは存在しません: PASS。

この問題を解決するための提案、修正、またはさまざまなアイデアを受け入れます。皆さん、ありがとうございました!(そして私の英語があまりはっきりしていない場合はすみません)。

4

1 に答える 1