我正在使用带有NodeJS的NightwatchJS:http://nightwatchjs.org/api
我有一个模态对话框,可能出现也可能不出现。它有#close_button
需要点击(如果出现模态)继续。
我将abortOnFailure
的{{1}}参数设置为waitForElementPresent
,以便在模式未显示时脚本继续。但是我无法让它发挥作用。
有什么建议吗?
false
答案 0 :(得分:0)
abortOnFailure
工作正常,但是waitForElementPresent
现在有一个错误,你传递的回调没有在正确的上下文中调用。这将是固定的。
与此同时,您可以像这样编写测试,将click
放在外面,这是相同的,看起来更干净:
module.exports = {
"Test" : function (browser) {
browser
.url("http://domain.com/")
.waitForElementPresent('#close_button', 5000, false)
.click('#close_button')
.setValue('#username', 'test@email.com')
//more code here
.end(); // end() goes here
}
}
答案 1 :(得分:0)
我碰到了类似的东西,我正在等待一个iframe出现。我创建了一个实际关闭它的函数:
pageObject函数:
Home.prototype.closeIframe = function(browser) {
var self = this;
console.log('Checking for iframe');
this.browser
.isVisible(iframeSelectors.iframe, function(result) {
if (result.value === true) {
self.browser
.log('iframe visible')
.frame(iframeSelectors.name)
.waitForElementVisible(iframeSelectors.closeLink)
.click(iframeSelectors.closeLink)
.assert.elementNotPresent(iframeSelectors.iframe)
.frame(null)
.pause(2000); //allow for proper frame switching
} else {
console.log('iframe is not visible');
}
});
return this;
在我的测试中,我在执行上述功能之前等待页面完全加载。