我有一个Web应用程序,我正在使用Protractor进行测试。不幸的是,当它加载时,应用程序的各个区域都可以显示重叠的加载微调器。所以我想要等待,直到所有的旋转器在我继续之前变得不可见。旋转器变得不可见,而不是完全从DOM中消失。
这是我到目前为止所得到的。不幸的是,它一直运行到等待超时。
function waitForAllElementsToDisappear(elementArray) {
return function () {
return elementArray.reduce(function (acc, elem) {
if (acc == null) acc = true;
try {
return elem.isDisplayed().then(function(displayValue) {
if (displayValue) return false;
else return acc;
});
}
catch (err) {
return acc;
}
});
};
};
browser.wait(this.waitForAllElementsToDisappear(
element.all(by.css('div[ng-if~="mmc.menuTree.showSpinner"]'))),
5000);
希望这太复杂了,并且有一个很好的解决方案。
感谢您的帮助。
答案 0 :(得分:1)
函数waitForAllElementsToDisappear
中有一些错误的地方:
function waitForAllElementsToDisappear(elementArray) {
return elementArray.isDisplayed().then(function(arrs){
// arrs is an array like [true, false, false, true]
// when there is no true in the array, means all spinners are not visible
// we can end the waiting now
return arrs.includes(true) === false
});
};