【发布时间】:2016-04-04 23:06:19
【问题描述】:
我有以下代码过滤包含文本的元素:
var myspan = searchChoices.filter(function(elem, index) {
return elem.getText().then(function(text) {
//console.log('index text:' +text);
return text === 'Consultant 110';
});
});
expect(myspan).not.toBe(null);
myspan.count().then(function (x) {
console.log('count:'+x);
});
expect(myspan.count()).toBe(1); // this succeeds
expect(myspan.count()===1).toBe(true); // <---This fails
奇怪的是,最后一行之前的那一行的期望成功了,而最后一行却失败了。是什么原因?
【问题讨论】:
-
count()返回一个承诺,而不是一个整数。expect()知道如何处理承诺,但count() === 1总是会失败 -
是的,但是在评估之前不应该解决所有的承诺吗?
-
是的,但这是您传递给它的布尔值,而不是承诺
标签: javascript jasmine protractor