删除NG重复量角器中的记录

时间:2015-02-11 21:20:19

标签: angularjs node.js protractor

所以我正在用量角器和角度进行e2e测试 我的第一个测试是在列表中添加一个元素,
现在我正试图删除它,我很难这样做

所以这就是我需要做的事情:

  1. 找到我要删除的记录的名称
  2. 点击同一行的垃圾桶图标并将其删除
  3. 在出现的弹出窗口中按“确定”
  4. 尽量避免使用By.css,并选择与angular(byBinding,model等)相关的所有内容。这是因为应用程序的这一部分最终会改变,因此我将不得不重做所有这些情况。
  5. HTML:

    ...

    <div class="list-group-item ng-scope" ng-repeat="item in teamList">
        <span class="glyphicon glyphicon-user"></span>
        <span ng-bind="item.name" class="memberName ng-binding">nuevo Team</span>
        <a ng-click="editTeam(item._id)" class="hand-cursor">
            <span class="glyphicon glyphicon-edit memberRemoveBotton"></span>
        </a>
        <a ng-confirm-click="Would you like to delete this item?" confirmed-click="deleteTeam(item._id)" class="hand-cursor">
            <span class="glyphicon glyphicon-trash memberRemoveBotton"></span>
        </a>
    </div>  
    

    JS:

    describe('Testing delete Item',function() {
            it('Should delete the Item that just got Inserted',function() {
                element(by.css('a[href="#!/item-create"]')).click(); //Opens up the Item dashBoard
                element.all(by.repeater('item in itemList')).then(function(table) {
                    table.element(by.binding('item.name')).each(function(names) {
                        console.log('the names',names.getText());//I'm trying to find the name of the item that just got inserted
                        // is there like a nested chaining of elements in here ??
                    });         
                });
            });
    });
    

    有关如何解决这个问题的任何提示都很受欢迎

2 个答案:

答案 0 :(得分:4)

describe('Testing delete Item',function() {
  it('Should delete the Item that just got Inserted',function() {
    // Assume you know the name of the item you want to delete.
    var nameToDelete = 'some name';

    // Get the row that has the name by using filter.
    element.all(by.repeater('item in itemList')).filter(function(row){
      return row.element(by.css('.memberName')).getText().then(function(name){
        return name === nameToDelete; 
      });
    })
    // Now you should have one row.
    .get(0)
    // Get the row and click find the remove button.
    .element(by.css('.memberRemoveBotton'))
    .click();

    // Make sure it was deleted.
    var names = $$('.list-group-item .memberName').getText();
    expect(names).not.toContain(nameToDelete);
  });
});

让我知道它是否有效。

答案 1 :(得分:1)

感谢Andres你的回答帮助我理清了我的疑虑。

无论如何这里是答案,其中一个最乏味的部分是popUp window,让我们希望it wont brake稍后

it('Should delete the Team that just got Inserted',function() {
    element(by.css('a[href="#!/team-create"]')).click(); //Opens up the Team dashBoard
    element.all(by.repeater('item in teamList')).filter(function(row) {
        return row.element(by.css('.memberName')).getText().then(function(name) {
            return name === teamName;
        });
    }).first().element(by.css('.glyphicon-trash')).click();
    testHelper.popUpHandler(ptor);
    element.all(by.css('.list-group-item .memberName')).each(function(list) {
        expect(list.getText()).not.toContain(teamName);
    });
});