Как найти идентификатор данных в 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? }