【发布时间】:2015-05-11 18:44:07
【问题描述】:
按照这个例子:Protractor get element by model in repeater array,我遇到了麻烦。我想将输入值发送到中继器内的元素。希望这是一个简单的解决方案!
我的 HTML 看起来与此类似。主要区别在于“posts”与“user.posts”。
<tr ng-repeat="post in user.posts">
<td ng-click="activePost(post)" class="title">{{post.title}}</td>
<td><button class="btn btn-danger" ng-click="delete(post)">Delete</button></td>
<td><input type="text" ng-model="post.subtitle"
id="{{post.id}}" /></td>
</tr>
然后按照例子,我写了这样的东西:
element.all(by.repeater('post in user.posts')).then(function(posts) {
var activePost = posts[0].element(by.model('post.subtitle'));
activePost.sendKeys('My post');
});
量角器测试在“activePost.sendKeys('My post')”处失败,并出现以下错误:
NoSuchElementError: No element found using locator:
by.model("post.subtitle").
Stacktrace:
NoSuchElementError: No element found using locator: by.model("post.subtitle")
at Array.forEach (native) Error
at /Users/.../e2e/spec.js:51:17
at Array.forEach (native) From: Task: Asynchronous test function: it() Error
at [object Object].<anonymous> (/Users/.../e2e/spec.js:32:3)
at Object.<anonymous> (/Users/.../e2e/spec.js:2:1)
有人对我可以尝试什么或以不同的方式思考它有什么建议吗?谢谢!
回答:Protractor 抛出的错误与转发器完全无关,而是与视图中缺少的结束 div 标记有关。是不是偶尔会出现这样的怪事?去搞清楚。
【问题讨论】:
标签: javascript angularjs testing protractor end-to-end