在一个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”,纯文本或绑定中的任何内容.
解决方法
该示例尝试使用以下策略定位元素(列部分根据注释固定):
protractor.By.repeater('phone in phones').column('name')
Repeater部分匹配li元素,然后使用phone.name绑定查找元素.它的包装元素恰好与li相同.
将列部件更改为.column(‘snippet’)会返回p元素,因为在其中找到了phone.snippet绑定.
相关文档/示例:https://github.com/angular/protractor/blob/master/docs/getting-started.md#writing-tests
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。