等待給定的時間(毫秒,預設為 5000 毫秒),直到元素處於提供的動作狀態,然後再執行任何其他命令或斷言。
如果元素在給定的時間內未能處於動作狀態,則測試失敗。 您可以將 abortOnFailure 設定為 false 來變更此行為。

您可以在 nightwatch.conf.js 或外部全域檔案中將輪詢間隔定義為全域屬性 waitForConditionPollInterval(以毫秒為單位)來變更輪詢間隔。
同樣地,預設逾時可以指定為全域屬性 waitForConditionTimeout (以毫秒為單位)。

用法

                    .waitUntil(action, {timeout, retryInterval, message, abortOnFailure});
                

範例

 describe('demo Test', function() {
  it ('wait for container', async function(browser){
    // with default implicit timeout of 5000ms (can be overwritten in settings under 'globals.waitForConditionTimeout')
    await browser.element.find('#index-container').waitUntil('visible');

    // with explicit timeout (in milliseconds)
    await browser.element.find('#index-container').waitUntil('visible', {timeout: 1000});

    // continue if failed
    await browser.element.find('#index-container').waitUntil('visible', {timeout: 1000, abortOnFailure: false});

    // with negative assertion
    await browser.element.find('#index-container').waitUntil('not.visible');

    // with xpath as the locate strategy
    await browser.element.find(by.xpath('//*[@id="index-container"]')).waitUntil('visible', {message: 'The index container is found.'});

    // with custom message
    await browser.element.find('#index-container').waitUntil('visible', {message: 'The index container is found.'});
  });


  it('page object demo Test', async function (browser) {
    const nightwatchPage = browser.page.nightwatch();

    nightwatchPage
      .navigate()
      .assert.titleContains('Nightwatch.js');

    await nightwatchPage.element.find('@featuresList').waitUntil('visible');
  });
});

參數

名稱 類型 描述
action 字串

動作狀態。 應為以下其中之一:selected、not.selected、visible、not.visible、enabled、disabled、present、not.present

timeout
可選
數字

在失敗之前要等待的總毫秒數。 也可以使用設定下的「globals.waitForConditionTimeout」設定。

retryInterval
可選
數字

重試之間等待的毫秒數。 只有在您同時指定時間參數時,才能使用此參數。 也可以使用設定下的「globals.waitForConditionPollInterval」設定。

message
可選
字串

在輸出中顯示的可選訊息。 訊息支援兩個佔位符:%s 表示目前選擇器,%d 表示時間(例如,元素 %s 在頁面中未出現 %d 毫秒)。

abortOnFailure=abortOnAssertionFailure
可選
布林值

預設情況下,如果找不到元素,測試將會失敗。 如果您希望即使斷言失敗,測試仍能繼續,請將此設定為 false。 若要全域設定此項,您可以在全域變數中定義屬性 abortOnAssertionFailure