我在几个测试中成功使用了提供here的库,但现在我仍然试图按照他们的文档使用断言作为waitForElementByLinkText
API方法中的传递函数。
这是我定义Asserter的地方:
function Asserter(_assert){
this.assert = _assert;
}
/**
* asserters.isVisible
*
* @asserter
*/
var isDisplayed = new Asserter(
function(el,cb) {
el.isDisplayed(function(err, displayed) {
if(err) { return cb(err); }
cb(null, displayed);
});
}
);
module.exports = {
Asserter: Asserter,
isDisplayed: isDisplayed
};
然后在我的链接脚本中,我试图按如下方式使用它,但console.log
在元素可见之前执行:
.get('http://mydomain.com/mypage')
.elementByLinkText('Reset', function(err, el){
browser.next('clickElement', el, noop);
})
.waitForElementByLinkText('This is the link text', isDisplayed, 10000, 100, function(err){
console.log('The page has updated!');
})
我相信我的代码使用的是链接语法的弃用版本,这是支持SeBuilder发布的遗留代码所必需的,但是很难跟踪所有使用新方法的示例。
答案 0 :(得分:3)
您无需重新定义常用的断言器,请参考此处的新示例:
https://github.com/admc/wd/blob/master/examples/deprecated/wait-for-simple.js
如果您需要更多帮助,请提供一些html / js样本,否则很难弄清楚您实际想要实现的目标。