.waitUntil() 建议编辑
在执行任何其他命令或断言之前,等待给定时间(默认 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。要在全局范围内设置此选项,可以在 globals 中定义一个名为 `abortOnAssertionFailure` 的属性。 |