我正在开发一个函数,它将在使用过滤器功能后读取元素的文本。我打印出了返回的文本,它正在获取元素,但我不认为我理解js promises .. activeFilters是我已经识别的var。
this.verifyColorFilterFunctional = function(color) {
var bool = true;
activeFilters.count().then(function (count) {
var amt = count - 1;
for (var i = 0; i < amt; i++){
activeFilters.get(i).getText().then(function(text) {
bool = (color === text);
console.log(bool);
});
if (!bool) {
break;
}
}
});
return expect(bool).to.become(true);
};
console.log根据需要打印出true和false,但是我注意到了两件事。如果为false,它就不会像我在if语句中告诉它那样破坏。另外,我得到一个typeError:true不是一个明显的错误..我相信逻辑听起来不错,但不是JS。任何帮助将不胜感激。
答案 0 :(得分:3)
量角器的element.all()
支持getText()方法,该方法将元素中显示的文本作为数组返回。然后您可以使用expect方法轻松比较结果数组。
this.verifyColorFilterFunctional = function(color) {
activeFilters.getText().then(function (textArray) {
expect(textArray).to.equal(Array(textArray.length-1).fill(color));
});
}