在我的测试用例中,我试图在返回一些项之前为check元素数组实现helper。如果数组不包含元素 - 我需要等待(我在应用程序性能方面遇到一些麻烦,有时列表中的元素加载太长而同步不起作用)。
我帮手的功能:
getElementFromArray(array, elementIndex) {
return browser.wait(() => {
return array.count((count) => {
return count > elementIndex;
});
}, 10000).then(() => {
return array.get(elementIndex);
}, () => {
console.log("Element in array does not exist.");
return null;
})
}
然后我用它:
let row = helper.getElementFromArray(rowsCatalog, indexRow);
row.getText();
但我收到错误,因为browser.wait()
会返回ManagedPromise
而不是ElementFinder
。
我真的不想使用helpers函数作为promises,因为它会使代码非常复杂且难以理解(上面的例子 - 最简单的情况)。
答案 0 :(得分:0)
不确定这是否适用于您的情况,但您可以在browser.wait()
之后返回:
getElementFromArray(array, elementIndex) {
browser.wait(() => {
return array.count((count) => {
return count > elementIndex;
});
}, 10000);
return array.get(elementIndex);
}