Protractor 通过 ng-click 迭代
Protractor Iterate through ng-click
我有以下代码
<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() returns an ElementArrayFinder
rather than a simple array. If you look at the linked documentation you'll see some functions that allow you to easily interact that data structure. I believe you want to use the each() 函数如下:
element.all(by.css('[ng-click="test(uid)"]')).each(function(element, index) {
element.getText().then(function (text) {
console.log(text);
});
});
另外值得注意的是 getText() 函数,就像 Protractor 中的几乎所有函数一样,returns 一个承诺,因此在您可以访问您真正想要的值之前需要解决。
我有以下代码
<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() returns an ElementArrayFinder
rather than a simple array. If you look at the linked documentation you'll see some functions that allow you to easily interact that data structure. I believe you want to use the each() 函数如下:
element.all(by.css('[ng-click="test(uid)"]')).each(function(element, index) {
element.getText().then(function (text) {
console.log(text);
});
});
另外值得注意的是 getText() 函数,就像 Protractor 中的几乎所有函数一样,returns 一个承诺,因此在您可以访问您真正想要的值之前需要解决。