尝试从 ng-repeat 的第一行的第一列中选择文本。 html(这些是表体中的行):
<tr ng-repeat="c in cars | orderBy:'-type' ">
<!-- Type -->
<td>{{ c.type }}</td>
<!-- Notes -->
<td>{{ c.notes }}</td>
</tr>
选择尝试:
var type= element.all(by.repeater("c in cars| orderBy:'-date' ").
row(0).column(0));
type.getText()
.then(function(text){
console.log('ISSUED FROM: ' + text);
});
我做错了什么?像往常一样,我查看了 SO 上的示例(有一些用于转发器),但它们似乎不起作用(......对我来说,我确信它们可以工作并且我做错了)。我没有收到错误,但即使在浏览器中显然有一个字符串,我也没有得到任何关于“文本”的信息。
查看源代码时看起来像这样,如果有帮助的话:
<!-- Type -->
<td class="ng-binding">Murcielago</td>
最佳答案
by.exactRepeater()
在这里会是更好的选择。此外,column()
应通过传入的绑定(bind) 调用,并且由于您需要单个元素,请使用 element()
:
var type = element(by.exactRepeater("c in cars").row(0).column("c.type"));
expect(type.getText()).toEqual("Murcielago");
关于javascript - Protractor ng-repeater元素选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31867310/