0

我有一个子菜单,其中包含从数据库传递的列表。我正在使用 ng-repeat 来显示每次都不会以相同顺序排列的列表。我如何使用量角器对其进行测试,现在我正在测试:

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

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

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

4

1 回答 1

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();
于 2016-09-16T20:53:47.520 回答