量角器ng-中继器元件选择

时间:2015-08-06 23:17:15

标签: javascript angularjs testing selenium-webdriver protractor

尝试从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上的示例(有一些用于转发器),但它们似乎不起作用(...对我来说,我确信它们有效并且我做错了什么)。我没有收到任何错误,但我没有得到任何关于&#34; text&#34;即使在浏览器中,也有明显的字符串。

在查看源代码时看起来像这样,如果有帮助:

<!-- Type -->
<td class="ng-binding">Murcielago</td>

1 个答案:

答案 0 :(得分:2)

by.exactRepeater()在这里会是更好的选择。此外, column()应该通过传入绑定来调用,因为您需要一个元素,所以使用element()

var type = element(by.exactRepeater("c in cars").row(0).column("c.type"));
expect(type.getText()).toEqual("Murcielago");