我现在正在写一些量角器测试并遇到一些问题。 如何从第一行的条目中获取'value1','value2'和'value3'的值?
HTML看起来像这样:
<table>
<tr data-ng-repeat="object in $data track by object.id">
<td>{{object.value1}}
</td>
<td>
{{object.value2}}
</td>
<td>
{{object.value3}}
</td>
</tr>
</table>
答案 0 :(得分:3)
量角器文档没有非常清楚地说明,但.column()
// Returns a promise that resolves to an array of WebElements from a column
var ages = element.all(
by.repeater('cat in pets').column('cat.age'));
// Returns the H4 for the first book's name.
var firstBookName = element(by.repeater('book in library').
row(0).column('book.name'));
定位器applies to the by.repeater()
locator。
网站上的一些例子:
{'read': 'id'}
答案 1 :(得分:1)
首先,您需要通过转发器找到所需的表行:
var rows = element.all(by.repeater("object in $data"));
然后,要获取单元格文本,您可以使用repeater()
的行/列功能作为Josh建议或使用map()
:
var data = rows.map(function (row) {
var cells = row.all("td");
return {
value1: cells.first().getText(),
value2: cells.get(1).getText(),
value3: cells.get(2).getText()
}
});
然后,data
将包含一个行对象列表,其中包含值:
expect(data).toEqual([
{value1: "test1", value2: "test2", value3: "test3"},
{value1: "test4", value2: "test5", value3: "test6"}
]);