我有以下代码
<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());
最佳答案
问题是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 ,因此需要先解析,然后才能访问您真正想要的值。
关于javascript - Protractor 通过 ng-click 进行迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30925298/