量角器 通过 ng 单击进行迭代

Protractor Iterate through ng-click

本文关键字:迭代 单击 通过 ng 量角器      更新时间:2023-09-26

我有以下代码

<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 迭代元素以检查量角器中的特定文本值(第一、第二或第三)?我尝试了以下内容,但我没有为 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());

问题是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() 函数与量角器中的几乎所有函数一样,返回一个承诺,因此需要先解决,然后才能访问真正想要的值。