转发器数组中的WebElement量角器getText

时间:2013-11-14 20:51:48

标签: angularjs protractor

在html页面中我有:

<ul class="phones">
              <li ng-repeat="phone in phones | filter:query | orderBy: orderProp">
                {{phone.name}} - {{phone.age}}
                <p>{{phone.snippet}}</p>
              </li>
            </ul>

在e2e测试中,我(在数组中返回两个元素):

            var result= ptor.findElements(protractor.By.repeater('phone in phones').column('phone.name'));

            result.then(function(arr) {
                arr[0].getText().then(function(text) {
                    console.log("*** 1: "+ text);
                });

                arr[1].getText().then(function(text) {
                    console.log("*** 2: "+ text);
                })
            });

控制台正在打印所有三列,phone.name,phone.age和phone.snippet。 为什么选择器不仅仅是返回phone.name?

它实际上返回列表“li”,纯文本或绑定中的任何内容。

1 个答案:

答案 0 :(得分:3)

该示例尝试使用以下策略定位元素(列部分根据注释固定):

protractor.By.repeater('phone in phones').column('name')

Repeater部分匹配li元素,然后查找具有phone.name绑定的元素。它的包装元素恰好是li

将列部分更改为.column('snippet')会返回p个元素,因为在phone.snippet内部找到{{1}}个绑定。

此处的相关文档/示例:https://github.com/angular/protractor/blob/master/docs/getting-started.md#writing-tests