2013-12-01 3 views
10

Учитывая, что приложение todo имеет список задач: Прогулка по собаке, Ешьте обед, Пойдите по магазинам. Каждая задача имеет «полную» ссылку.Транспортир - щелкнуть ссылку в списке

Использование Protractor, как я могу щелкнуть по полной ссылке для второй задачи «Ешьте обед»? Предпочтительно, я бы хотел сделать это, не используя индексы в своем тесте.

HTML-структура, как так ...

<ul class="pending"> 
    <li ng-repeat="task in tasks"> 
     {{task.name}} 
     <a href='#'>Complete</a> 
    </li> 
</ul> 

Это похоже на обычную ситуацию так, конечно, там должно быть простое решение, которое я с видом. Заранее спасибо

ответ

19
element.all(by.repeater('task in tasks')). 
    get(1). 
    element(by.linkText('Complete')). 
    click() 

или

element.all(by.repeater('task in tasks')). 
    get(1). 
    $('a'). 
    click() 
+0

уточняет индекс 'получить (1)' единственный способ? Полагаю, меня больше интересует поиск способа найти кнопку «Завершить», которая соединяется с определенным именем задачи. Таким образом, тест очень декларативный. У меня есть ощущение, что использование явных индексов будет точкой хрупкости в тестах. – BigCountry

+0

Несомненно, просто выполните: $ ('. Pending'). FindElement (by.linkName ('Complete')) –

+0

Был ли селектор 'linkName' удален из Protractor или необходим плагин? –

Смежные вопросы