【问题标题】:Protractor Tests get Values of Table entries量角器测试获取表条目的值
【发布时间】:2015-12-07 14:16:54
【问题描述】:

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

【问题讨论】:

  • 能否将您已经完成的内容添加到帖子中。

标签: angularjs protractor


【解决方案1】:

量角器文档没有把它拼得很清楚,但是有一个.column() 定位器applies to the by.repeater() locator

网站上的一些例子:

// 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'));

【讨论】:

    【解决方案2】:

    首先,您需要通过转发器定位所需的表格行:

    var rows = element.all(by.repeater("object in $data"));
    

    然后,要获取单元格文本,您可以按照 Josh 的建议使用 repeater() 的行/列功能或使用 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"}
    ]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-27
      相关资源
      最近更新 更多