.waitForElementPresent() 建议编辑
在执行任何其他命令或断言之前,等待给定的时间(默认 5000 毫秒)以检查页面中是否存在元素。
如果元素在指定的时间内未能出现,则测试将失败。您可以通过将 abortOnFailure
设置为 false
来更改此设置。
您可以通过在 nightwatch.json
中或在外部全局文件中定义全局属性来更改轮询间隔(以毫秒为单位)。
同样,默认超时可以指定为全局 waitForConditionTimeout
属性(以毫秒为单位)。
用法
.waitForElementPresent([using], selector, [timeout], [pollInterval], [abortOnAssertionFailure], [callback], [message]);
示例
module.exports = {
'demo Test': function(browser) {
// with default implicit timeout of 5000ms (can be overwritten in settings under 'globals.waitForConditionTimeout')
browser.waitForElementPresent('#index-container');
// specify the locate strategy (css selector/xpath) as the first argument
browser.waitForElementPresent('css selector', '#index-container');
// with explicit timeout (in milliseconds)
browser.waitForElementPresent('#index-container', 1000);
// continue if failed
browser.waitForElementPresent('#index-container', 1000, false);
// with callback
browser.waitForElementPresent('#index-container', 1000, function() {
// do something while we're here
});
// with custom output message - the locate strategy is required
browser.waitForElementPresent('css selector', '#index-container', 'The index container is found.');
// with custom Spanish message
browser.waitForElementPresent('#index-container', 1000, 'elemento %s no era presente en %d ms');
// many combinations possible - the message is always the last argument
browser.waitForElementPresent('#index-container', 1000, false, function() {}, 'elemento %s no era presente en %d ms');
},
'demo Test with selector objects': function(browser) {
browser.waitForElementPresent({
selector: '#index-container',
timeout: 1000
});
browser.waitForElementPresent({
selector: '#index-container',
locateStrategy: 'css selector'
}, 'Custom output message');
browser.waitForElementPresent({
selector: '.container',
index: 2,
retryInterval: 100,
abortOnFailure: true
});
}
'page object demo Test': function (browser) {
var nightwatch = browser.page.nightwatch();
nightwatch
.navigate()
.assert.titleContains('Nightwatch.js');
nightwatch.waitForElementPresent('@featuresList', function(result) {
console.log(result);
});
}
}
参数
名称 | 类型 | 描述 |
---|---|---|
使用 可选 |
字符串 | 要使用的定位器策略。查看 W3C Webdriver - 定位器策略 |
选择器 |
字符串 | 对象 | 用于定位元素的选择器(CSS/Xpath)。可以是字符串,也可以是指定 元素属性 的对象。 |
time=waitForConditionTimeout 可选 |
数字 | 失败前等待的总毫秒数。 |
poll=waitForConditionPollInterval 可选 |
数字 | 两次检查之间等待的毫秒数。仅当您也指定时间参数时才能使用此参数。 |
abortOnFailure=abortOnAssertionFailure 可选 |
布尔值 | 默认情况下,如果元素未找到,则测试将失败。如果希望测试即使断言失败也继续执行,请将其设置为 false。要全局设置此选项,可以在全局变量中定义一个 |
回调 可选 |
函数 | 命令完成后要调用的可选回调函数。 |
消息 可选 |
字符串 | 要显示在输出中的可选消息;该消息支持两个占位符:%s 表示当前选择器,%d 表示时间(例如,元素 %s 在页面中不存在 %d 毫秒)。 |