网页上有一个名为“显示更多”的按钮,它分阶段返回结果,用户必须一直点击它直到它消失返回所有结果。
我尝试在 while 循环中执行此操作,但出现错误“ fatal error :CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足”
代码如下:
while(true) {
browser.isElementPresent(element(by.id('toasten'))).then(function(Displayed){
console.log("Value of the promise "+Displayed);
if (Displayed==true){
element(by.id('toasten')).click();
browser.sleep(5000).then(function(){console.log("sleep added");});
}
});
}
show_more 按钮出现的次数不固定。有什么建议吗?
最佳答案
一旦元素不存在,您可以通过递归退出来接近它:
var showMore = function () {
var button = element(by.id('toasten'));
browser.isElementPresent(button).then(function(isPresent) {
if (isPresent) {
button.click();
browser.sleep(5000);
showMore();
}
else {
return;
}
});
}
请注意,您还可以改进函数内部的逻辑,并将 browser.sleep()
调用替换为更合适的 browser.wait()
等待元素出现。
关于javascript - 多次点击显示更多按钮直到禁用 Protractor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43912167/