Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Protractor 量角器:如何单击页面对象中的所有删除按钮_Protractor - Fatal编程技术网

Protractor 量角器:如何单击页面对象中的所有删除按钮

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();

我有一个表,有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
所以很明显,索引量角器期望next不再存在,因为它已被删除我如何解决这个问题?

这也不起作用,并引发相同的错误:

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();
    }
};

我终于明白了

this.deleteButtons = $$('i.icon-trash'); // locator

this.deleteAllFriends = function() {
    var buttons = this.deleteButtons;

    buttons.count().then(function(count) {
        while(count > 0) {
            buttons.first().click();
            count--;
        }
    })
};
有了今天的课程,你现在可以

专长(量角器):允许ElementArrayFinder具有高级功能


在大多数情况下,当您删除数组/列表中某个内容的“全部”时,您希望向后删除。这样,索引就不会因第一次删除而中断/更改。这是一个一般性评论。我不知道量角器,在这种情况下可能有一种更简单/更干净的方法,这就是为什么我要发表评论而不是回答。我升级到1.3.0,但这对我不起作用。直接从我的规范和/或页面对象调用,我得到:
TypeError:object[object object]没有方法“click”
你确定升级了吗?适用于我的测试套件,我刚刚添加了另一个以确保它正常工作。这很奇怪,我想如果您可以编写一个小测试用例来重现它,那么它就是1.3.0量角器错误,因为它没有按预期工作。Leo,我使用的是带有Node.js运行程序的WebStorm,它要求(afaik)您指定
cli.js
(/usr/local/lib/node_modules/gragrator/lib/cli.js)。这可能是我的问题吗?例如,我指向的是“旧的”吗?我没有看到另一个…只是想知道。是的,这是WebStorm/node的问题,因为从命令行运行它可以与新代码一起工作。。。
$$('i.icon-trash').click();