如何获得元素中包含的量角器测试中的div数/计数

时间:2015-05-11 19:33:22

标签: javascript testing selenium protractor end-to-end

我的测试需要将div计数/数字转换为转发器赋值的值。我试图搜索,但我的调查结果都没有。

app.js中的数组:

 var  rows = [a,b,c,d,e,f,g];
 var items = [1,2,3,4,5,6,7];

HTML:

<div ng-repeat="row in rows">
 <div ng-repeat = "item in items">
 <span>{{item}}</span>
</div>
</div>

问题:我想获取值为span元素为4或任何值的项目的div编号。如何用量角器测试来写这个。

我使用的是下面但如果值移动到下一行中的其他div则不起作用:

var getnumber = element(by.css=".items").get(4)

想要的是:

var getnumber = element(by.css=".rows").get("SOMETHING 1,2,3 or 4")

1 个答案:

答案 0 :(得分:2)

如果您想要一个号码 - 请使用map()

module app {
  'use strict';

  export function dashboard(): ng.IDirective {
    return {
      restrict: 'E',
      controllerAs: 'dashboard',
      bindToController: true,
      scope: {},
      templateUrl: 'app/components/dashboard/dashboard.template.html',
      controller: DashboardCtrl
    };
  }
}

element.all(by.repeater("item in items")).map(function (elm, index) { return { value: elm.element(by.tagName("span")).getText(), index: index } }).then(function (items) { for (var i=0; i < items.length; i++) { if (items[i].value === '4') { console.log(items[i].index); } } }); 文本为span时,这将打印转发器中元素的索引。

如果您要过滤4文本等于span的所有中继者,请使用filter()

4