量角器测试获取表条目的值

时间:2015-12-07 14:16:54

标签: angularjs protractor

我现在正在写一些量角器测试并遇到一些问题。 如何从第一行的条目中获取'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>

2 个答案:

答案 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"}
]);