我的测试需要将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")
答案 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