2016-01-07 2 views
0

Итак, у меня есть несколько выпадающих списков, которые делают некоторые автоматические тестовые примеры (просто проверяя, чтобы ссылки работали и шли в нужное место).Выпадающий список в Capybara без id?

Но у меня нет ничего id или что-либо для работы с:

Вот внешний HTML-текст выпадающего текста (который показывает больше выпадающих списков).

<a href="#" data-toggle="dropdown"><i class="glyphicon glyphicon-list-alt"></i> Main Dropdown <b class="caret"></b></a> 

Остальные элементов перечислены так:

<li><a href="/quotes"><i class="glyphicon glyphicon-list"></i> Option 1</a></li> 

бы больше смысла, чтобы просто попытаться использовать интерактивный текст, нажмите на тексте «Main Dropdown», а затем кликабелен текст, чтобы щелкнуть «Вариант 1» (имена были изменены, но концепция все та же).

Так как это действительно весь HTML-код там?

ответ

1

Поиск ссылок Capybaras находит элементы ссылок по атрибуту атрибута id, text, title или contains alt. С html предоставил наилучшее для них текст - так

click_link('Main Dropdown') # open the dropdown 
click_link('Option 1') # wait for the link to become visible and then click it 
+0

Это кажется хрупким с ожиданием, хотя не так ли? – msmith1114

+0

@ msmith1114 Это не более хрупкое, чем ожидание появления элемента по id, вы можете настроить время, в течение которого оно будет ожидать появления ссылки, передав wait: <количество секунд> в качестве опции click_link, если это необходимо, или увеличьте Capybara.default_max_wait_time. Хотя, если выпадающий динамически загружается динамически, вам действительно не нужно, и даже если он загружается динамически, на самом деле не должно появляться больше двух (значение по умолчанию для Capybara.default_max_wait_time) секунд - или ваш пользовательский интерфейс будет ужасно –

+0

Да, это правда, плюс им бегать без головы, чтобы он был еще быстрее. Im действительно не уверен, почему он был закодирован так, как он был. Наверное, я не понимаю, почему у него нет идентификатора или чего-либо. – msmith1114

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