angularjs - Protractor 在转发器数组中按模型获取元素

标签 angularjs testing protractor angularjs-e2e end-to-end

例如,在 HTML 页面中:

<tr ng-repeat="post in posts">
    <td ng-click="activePost(post)" class="title">{{post.title}}</td>
    <td><button class="btn btn-danger" ng-click="delete(post)">Delete</button></td>
  <td><input type="checkbox" ng-model="post.active" 
        id="{{post.id}}" /></td>
 </tr>

然后,我想要这样的东西:

element.all(by.repeater('post in posts')).then(function(posts) {
   var activePost = posts[0].element(by.model('active'));
   expect(activePost).toEqual(true);
});

这将返回无法找到的元素。我基于这个问题和答案: Protractor find element inside a repeater

最佳答案

传递给 by.model() 的值应该与页面上的一样:

var activePost = posts[0].element(by.model('post.active'));

请注意,activePost 变量将引用一个元素,因此即使它的值为 false(未选中的复选框),expect(activePost).toEqual (true); 预期会得到满足。你需要 assert the checkbox's value instead using isSelected() :

expect(activePost.isSelected()).toBeTruthy();

关于angularjs - Protractor 在转发器数组中按模型获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28113641/

相关文章:

wpf - 使用 Protractor 对 WPF 中 CefSharp 浏览器下托管的 AngularJS 应用程序进行自动化测试

javascript - AngularJS Datepicker 将日期设置为比所选日期早 1 天

javascript - 将表单从 Angular JS 发送到 Spring

angularjs - 指令上的多个 ng 类属性

java - 如何测试交互式java代码的速度?

javascript - Protractor 中的异步等待被忽略

javascript - 使用 Angular JS ionic 中的 Soap 请求获取 XML 响应

testing - 在 JMeter 中顺序运行多个线程组

javascript - 如何在 Angularjs Protractor 中使用全局函数?

node.js - 通过 grunt 在实时服务器上运行 Protractor