在我的测试用例中,我尝试实现助手,以在返回某些项目之前检查元素数组。如果数组不包含元素 - 我需要等待(我在应用程序性能方面遇到一些麻烦,有时列表中的元素加载太长并且同步不起作用)。
我的助手中的功能:
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
。
我真的不想使用辅助函数作为 Promise,因为它会让代码变得非常复杂且不可读(上面的例子 - 最简单的情况)。
最佳答案
不确定这是否适用于您的情况,但您可以在 browser.wait()
之后返回:
getElementFromArray(array, elementIndex) {
browser.wait(() => {
return array.count((count) => {
return count > elementIndex;
});
}, 10000);
return array.get(elementIndex);
}
关于javascript - 如何在 Protractor 中从 browser.wait() 返回 ElementFinder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41462263/