javascript - Protractor 通过 ng-click 进行迭代

标签 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());

最佳答案

问题是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/

相关文章:

javascript - 选择页面上的特定文本并将其删除

node.js - 如何根据 Excel 值多次运行 Protractor Spec

javascript - 如何在异步函数中对 Javascript 数组的值求和?

javascript - http ://errors. angularjs.org/1.4.1/ngRepeat/dupes

javascript - 如何使用 JavaScript 阻止刷新功能?

javascript - jQuery 搜索表单 - 如何定向到内部页面

javascript - Angular 和 Karma - 为什么这个测试失败?

javascript - 在 Angular 中提取路由配置

java - Spring boot Security,Oauth2 注销,使 session 无效,以便在授权服务器中完成身份验证和批准周期

javascript - 使用页面对象模型在 Protractor 测试中需要断言表单字段