javascript - AngularJS 应用程序中的 Protractor 和 ng-repeat

标签 javascript angularjs gruntjs protractor

运行以前有效的 Protractor 测试现在似乎失败了!以下代码片段是一个应用了排序的 ng-repeat。显示时,用户将看到四列。我想选择第一行中的第一项,该行内是研究详细信息。我需要从所选元素中选择第三列,即 Study.TASK_ITEM_CNT。

代码片段:

<div class="row">
<div ng-repeat="study in studyItems.drafts | orderBy:sort.value" class="col-md-3 study-col"
  ng-click="editStudy(study)">
  <div class="individual-study draft">
     <div class="study-date">{{ study.DATEVIEW_JS | formatdate:"DD MMMM YYYY"}}</div>
     <div class="review-study-date review-study-status study-paused-label" ng-if="study.STUDY_TYPE == 'MODERATED' || study.STATUSID == 'STOPPED'">
        <a  ng-show="study.STUDY_TYPE == 'MODERATED'" class='study-setGreenPill' id="study-hoveroff-greenPill" title="Moderated Study">Mod.</a>
     </div>
     <div class="study-name" study_id="{{study.ID}}" ng-bind-html="study.NAME | to_trusted"></div>
     <div class="study-task-details">{{study.TASK_ITEM_CNT || 0}} screen{{ study.TASK_ITEM_CNT == 1 ? '' : 's' }}
     </div>
     <div class="study-actions" study_id="{{study.ID}}" ng-click="confirmDelete($event, study, $index)" title = "Delete Study"></div>
   </div>
 </div>
</div>

旧的 Protractor 测试如下所示;

var firstElement = element(by.repeater('study in studyItems.drafts').row(0).column('{{study.TASK_ITEM_CNT || 0}}'))
expect(firstElement.getText()).toBe('TEST);

除了说测试失败之外,没有任何错误消息。

这以前有效,我让它与以下内容一起工作,如下所示;

element.all(by.repeater('study in studyItems.drafts')).get(0).then(function(args){
  expect(args.getText()).toContain('TEST');
});

这并不像我想要的那么优雅!欢迎提出任何建议。

谢谢。

J

最佳答案

使用

element.all(by.repeater('study in studyItems.drafts | orderBy:sort.value')).get(0).then(function(args){

expect(args.getText()).toContain('TEST'); });

关于javascript - AngularJS 应用程序中的 Protractor 和 ng-repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26640080/

相关文章:

sass - 运行 grunt 时出错

javascript - Grunticon : how to keep colors directives in file names when using svgmin

javascript - 如何使用FBJS获取用户的语言偏好?

javascript - 无法弄清楚为什么 window.frames.length = 0

javascript - Angular 指令中的数据困惑

javascript - 指令模板必须只有一个根元素

node.js - GruntJS 递归 globbing 区别

javascript - 函数正在重写变量。这怎么可能?

javascript - 无法读取路由参数中未定义的属性 'name'

javascript - 当我们在 ng-model 中使用 "keyword.name"以及在过滤器中使用 "filter: keyword"时,我无法弄清楚过滤器将如何工作