量角器通过ng-click迭代

时间:2015-06-18 20:33:25

标签: javascript angularjs protractor

我有以下代码

<div class="btn btn-success form-control ng-binding" ng-click="test(uid)">
                First
            </div>
    <div class="btn btn-success form-control ng-binding" ng-click="test(uid)">
                Second
            </div>
<div class="btn btn-success form-control ng-binding" ng-click="test(uid)">
                Third
            </div>

我如何基于ng-click迭代元素以检查Protractor中的特定文本值(第一个或第二个或第三个)?我尝试了以下但我未定义uids.length。这有什么不对?

var uids = element.all(by.css('[ng-click="test(uid)"]'));
for(var i=0;i<uids.length;i++)
console.log(uids.get(i).getText());

1 个答案:

答案 0 :(得分:3)

问题是element.all()返回ElementArrayFinder而不是简单的数组。如果查看链接文档,您将看到一些允许您轻松交互该数据结构的函数。我相信您想要使用each()函数,如下所示:

element.all(by.css('[ng-click="test(uid)"]')).each(function(element, index) {
  element.getText().then(function (text) {
    console.log(text);
  });
});

另外值得注意的是,getText()函数与Protractor中的几乎所有函数一样,返回一个promise,因此需要先解析,然后才能访问你真正想要的值。