javascript - 多次点击显示更多按钮直到禁用 Protractor

标签 javascript automation protractor

网页上有一个名为“显示更多”的按钮,它分阶段返回结果,用户必须一直点击它直到它消失返回所有结果。

我尝试在 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/

相关文章:

javascript - e2e Protractor 测试无法检测多层 Angular 路由器中的 Angular 分量

selenium-webdriver - Protractor/ Jasmine 测试抛出 “UnknownError: unknown error: Maximum call stack size exceeded”

javascript - React JS - Firebase使用map方法在组件中显示数据

javascript - 在 javascript/html 中使用 touchevent 模拟空格键按下

javascript - Angular 中的异步电子邮件验证

.net - Vb.Net Excel自动化行选择事件

javascript - 我有 4 个下拉菜单,我想在页面加载时隐藏它们,然后只要单击添加按钮,就会出现一个下拉菜单

javascript - 如何在 puppeteer 上登录没有 id 的页面?

objective-c - 使用 Cocoa 自动化浏览器任务?

selenium - 什么是自动化单页应用程序测试用例的最佳工具