在 Protractor 中访问 table 第一行的第一列
Accessing the first column of first row of a table in Protractor
<tr ng-repeat="a in people">
<td>
{{a.firstname}}
</td>
<td>
{{a.lastname}}
</td>
<td>
{{a.email}}
</td>
</tr>
量角器代码
var firstname = element.all(by.repeater('a in people'));
expect(firstname.get(0).getText()).toEqual('george');
这 returns 整个第一行。我如何获得第一列?谢谢
你可以这样得到:
var all = element.all(by.repeater('a in people')).all(by.css('td'));
expect(all.get(0).getText()).toEqual('george');
element.all(by.repeater('a in people'));
它只会找到一个元素。如果页面上有两个带有此 repeater 文本的元素,它将找到两个。但是您还需要通过 td
进行搜索。
从技术上讲,当 ng-repeat 执行时,它会将元素重复到 dom,在您的情况下,
标签将被重复。所以 element.all(by.repeater('a in people')) 导致多行,因此 get(0) 方法将 return 第一行。
我们可以使用以下代码获取第一行的第一列。
var firstname = element(by.repeater('a in people').row(0).column('a.firstname'));
expect(firstname.getText()).toEqual('xyz');
<tr ng-repeat="a in people">
<td>
{{a.firstname}}
</td>
<td>
{{a.lastname}}
</td>
<td>
{{a.email}}
</td>
</tr>
量角器代码
var firstname = element.all(by.repeater('a in people'));
expect(firstname.get(0).getText()).toEqual('george');
这 returns 整个第一行。我如何获得第一列?谢谢
你可以这样得到:
var all = element.all(by.repeater('a in people')).all(by.css('td'));
expect(all.get(0).getText()).toEqual('george');
element.all(by.repeater('a in people'));
它只会找到一个元素。如果页面上有两个带有此 repeater 文本的元素,它将找到两个。但是您还需要通过 td
进行搜索。
从技术上讲,当 ng-repeat 执行时,它会将元素重复到 dom,在您的情况下,
我们可以使用以下代码获取第一行的第一列。
var firstname = element(by.repeater('a in people').row(0).column('a.firstname'));
expect(firstname.getText()).toEqual('xyz');