protractor - Protractor :如何单击页面对象中的所有删除按钮

标签 protractor

我有一个表,其中包含3行数据和3个删除按钮。我想删除所有数据行,因此想在我的页面对象中编写一个方法来做到这一点……这应该很简单,但我无法使其正常工作。我正在这样尝试:

this.rows = element.all(by.repeater('row in rows'));

this.deleteAllFriends = function() {
    this.rows.each(function(row) {
        row.$('i.icon-trash').click();
    })
};

但这会引发错误:
Error: Index out of bound. Trying to access index:2, but locator: by.repeater("row in rows") only has 1 elements

显然,索引 Protractor 期望下一个不再存在,因为它已被删除。 我该如何解决?

这也不起作用,并引发相同的错误:
this.deleteButtons = $$('i.icon-trash');

this.deleteAllFriends = function() {
    this.deleteButtons.each(function(button) {
        button.click();
    });
};

这也行不通...
this.deleteAllFriends = function() {
    while(this.deleteButton.isDisplayed()) {
        this.deleteButton.click();
    }
};

最佳答案

使用今天的version >= 1.3.0 of Protractor,您现在可以do this at once

$$('i.icon-trash').click();

feat(protractor): allow advanced features for ElementArrayFinder

关于protractor - Protractor :如何单击页面对象中的所有删除按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25896061/

相关文章:

angular - 如何在我的 Jasmine /Protractor 测试中执行 typescript 样式继承?

javascript - 如何使用 Jasmine 自定义记者发布失败的规范列表以发布到松弛?

javascript - 将 Protractor 测试中的更新输入作为字符串读取

angular - 使用 VSCode 调试 Typescript Protractor 测试

angularjs - 如何在 Protractor 的输入上获取文本

selenium-webdriver - 从 Protractor 读取浏览器日志在第二次调用后没有产生任何结果

javascript - 仅当 src 发生更改时才运行构建

protractor - 有没有办法通过 Protractor cli传递多个浏览器

javascript - Protractor , 'for' 循环不执行所有索引的操作

node.js - 使用 Protractor webdriver-manager 运行一项任务后 Grunt 停止