Promises 和 for 循环 - 尝试验证多元素文本
Promises and for loops - trying to validate multiple element text
我正在开发一个函数,该函数将在使用过滤器功能后读取元素的文本。我已经打印出返回的文本并且它正在获取元素,但是我不认为我理解 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,但是我注意到两件事。当为假时,它不会像我在 if 语句中告诉它的那样中断。另外,我收到一个 typeError: true is not a thenable error.. 我相信逻辑在我脑海中听起来不错,但对 JS 来说却不是。任何帮助将不胜感激。
Protractor 的 element.all()
支持 getText() 方法,该方法将 return 您在元素中显示的文本作为 array.Then 您可以使用 expect 方法轻松比较结果数组。
this.verifyColorFilterFunctional = function(color) {
activeFilters.getText().then(function (textArray) {
expect(textArray).to.equal(Array(textArray.length-1).fill(color));
});
}
我正在开发一个函数,该函数将在使用过滤器功能后读取元素的文本。我已经打印出返回的文本并且它正在获取元素,但是我不认为我理解 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,但是我注意到两件事。当为假时,它不会像我在 if 语句中告诉它的那样中断。另外,我收到一个 typeError: true is not a thenable error.. 我相信逻辑在我脑海中听起来不错,但对 JS 来说却不是。任何帮助将不胜感激。
Protractor 的 element.all()
支持 getText() 方法,该方法将 return 您在元素中显示的文本作为 array.Then 您可以使用 expect 方法轻松比较结果数组。
this.verifyColorFilterFunctional = function(color) {
activeFilters.getText().then(function (textArray) {
expect(textArray).to.equal(Array(textArray.length-1).fill(color));
});
}