Как найти идентификатор данных в watir?

Я новичок в тестировании Watir. Может ли кто-нибудь помочь мне найти следующий элемент?

<div class="location_picker_type_level" data-loc-type="1">
  <table></table>
</div>

Мне нравится находить это div, data-loc-type с table существует.

например:

browser.elements(:xpath,"//div[@class='location_picker_type_section[data-loc-type='1']' table ]").exists?

1 ответ

Решение

Watir поддерживает использование data- введите атрибуты в качестве локаторов (т.е. не нужно использовать xpath). Просто замените тире подчеркиванием и добавьте двоеточие в начало.

Вы можете получить div, используя следующее (обратите внимание на формат локатора для атрибута: data-loc-type ->:data_loc_type):

browser.div(:class => 'location_picker_type_level', :data_loc_type => '1')

Если ожидается, что есть только один div этого типа, вы можете проверить, что у него есть таблица, выполнив:

div = browser.div(:class => 'location_picker_type_level', :data_loc_type => '1')
puts div.table.exists?
#=> true

Если есть несколько совпадающих div, и вы хотите проверить, что хотя бы у одного из них есть таблица, используйте any? метод для divs коллекция:

#Get a collection of all div tags matching the criteria
divs = browser.divs(:class => 'location_picker_type_level', :data_loc_type => '1')

#Check if the table exists in any of the divs
puts divs.any?{ |d| d.table.exists? }
#=> true

#Or if you want to get the div that contains the table, use 'find'
div = divs.find{ |d| d.table.exists? }
Другие вопросы по тегам