1

たとえば、HTML ページでは次のようになります。

<tr ng-repeat="post in 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="checkbox" ng-model="post.active" 
        id="{{post.id}}" /></td>
 </tr>

次に、次のようなものが必要です。

element.all(by.repeater('post in posts')).then(function(posts) {
   var activePost = posts[0].element(by.model('active'));
   expect(activePost).toEqual(true);
});

これは要素が見つからないことを返します。私はこれをこの質問と回答に基づいています: 分度器はリピーター内の要素を見つけます

4

1 に答える 1

3

に渡される値by.model()は、ページにあるとおりである必要があります。

var activePost = posts[0].element(by.model('post.active'));

変数は要素を参照することに注意してactivePostください。したがって、その値がfalse(チェックボックスがオフになっている) であっても、expect(activePost).toEqual(true);期待は満たされます。を使用する代わりに、チェックボックスの値isSelected()をアサートする必要があります。

expect(activePost.isSelected()).toBeTruthy();
于 2015-01-23T15:53:31.300 に答える