如何单击列表中的动态ng-repeat元素使用量角器?

时间:2016-09-16 20:26:41

标签: angularjs protractor ng-repeat gulp-protractor

我有一个带有从数据库传递的列表的子菜单。我正在使用ng-repeat来显示每次都不会在同一序列中的列表。我如何使用量角器测试它,现在我测试为:

 element(by.cssContainingText('.menu li:nth-child(8)',Pizza')).click();

但是当第n个孩子不在第8个列表中或者在列表中找不到“pizza”元素时,它会失败。我想为列表中没有的元素编写测试,假设Pizza没有从数据库传递,它应该跳过该测试。

我的问题是我如何测试这个场景我也没有任何id?有没有什么方法我可以点击元素,如果它匹配文本,并跳过测试,如果在子菜单中找不到该元素?

1 个答案:

答案 0 :(得分:1)

可能是这样的:

var foundElement = element.all(by.repeater('data in collection')).filter(function(data) {
     return data.getText().then(function(text) {
           return text === 'Pizza';
     });
  });
foundElement(0).element(by.css('.menu li')).click();