【发布时间】:2016-05-26 12:31:29
【问题描述】:
我是量角器的新手,并且有一个 angularjs 脚本,我正在尝试选择元素“收件箱”。这是 3 个手风琴式下拉菜单中的第二个。
<div class="container">
<div class="ng-scope" ui-view="" style="">
<div class="logo-container ng-scope">
<img class="img-responsive center-block" src="images/logo.png">
</div>
<a class="ng-scope" ng-click="toggleNav('/inboxes/alerts')">
<div class="inboxes inbox-alerts panel">
<div class="panel-body">
<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
<span class="panel-text ng-binding">
Alerts
<span class="badge ng-binding">3</span>
</span>
</div>
</div>
</a>
<a class="ng-scope" ng-click="toggleNav('/inboxes/inbox')">
<div class="inboxes inbox panel">
<div class="panel-body">
<span class="glyphicon glyphicon-inbox" aria-hidden="true"></span>
<span class="panel-text ng-binding">
Inbox
<span class="badge ng-binding">41</span>
</span>
</div>
</div>
</a>
我可以使用 element.all 来做到这一点,但这会返回一个元素数组 “['警报 3', '3', '收件箱 41', '41', 'Watch List104', '104' ]” 但我真正想要的是获得特定的元素。 下面是我的代码
it('should open & close the Inbox panel', function() {
var inbox_elm1 = element.all(by.binding('Inbox')).get(2);
inbox_elm1.click();
]);
});
如前所述,我使用 get(2) 来获取第二个元素。但我不想使用 element.all 来获取这个元素。
我已经尝试过其他返回零的东西,例如
var inbox_elm1 = element(by.binding('Inbox'));
或
var inbox_elm1 = element.all(by.binding('Inbox')).first();
返回错误。
考虑到这一点,我已经成功地选择了 Alerts 元素,因为它是第一个使用的面板:
var alrt_elm = element.all(by.binding('Alerts')).first();
alrt_elm.click();
但是重复上面的代码并将“警报”更改为“收件箱”只是继续选择警报手风琴而不是收件箱手风琴。建议?抱歉读了很久。
【问题讨论】:
标签: javascript angularjs jasmine protractor