Я новичок в транспортире и у меня есть скрипт 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', 'Список просмотра 104', '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 для получения этого элемента.
Я пробовал другие вещи, которые возвращают nil, такие как
var inbox_elm1 = element(by.binding('Inbox'));
or
var inbox_elm1 = element.all(by.binding('Inbox')).first();
который возвращает ошибку.
Имея это в виду, я достаточно легко успешно выбрал элемент «Оповещения», так как это была первая панель, использующая:
var alrt_elm = element.all(by.binding('Alerts')).first();
alrt_elm.click();
Но повторение этого кода выше и изменение «Оповещения» на «Входящие» просто продолжали выбирать аккордеон «Оповещения», а не аккордеон «Входящие». Предложения? Извините за долгое чтение.