#ruby #testing #cucumber #watir-webdriver
#ruby #тестирование #cucumber #watir-webdriver
Вопрос:
Я тестирую веб-приложение с использованием Watir-webdriver и Ruby. Мне нужно проверить содержимое таблицы на одной из веб-страниц. Элемент таблицы не имеет идентификатора, поэтому я не могу напрямую его извлечь. Однако он вложен в div, который действительно содержит идентификатор.
В Watir-webdriver есть метод (.parent), который позволяет вам захватить родительский элемент элемента, с которым вы работаете, но как насчет того, чтобы пойти другим путем?
Есть ли что-нибудь вроде .child или .child_element, что позволило бы вам захватить дочерний элемент через родительский элемент?
Я искал через API Watir-webdriver и не увидел ничего, что могло бы быть полезным. Мне было интересно, знает ли кто-нибудь здесь о методе, который я пропустил?
Спасибо.
Ответ №1:
Все методы поиска элементов выполняются в области браузера / элемента, в котором они вызываются.
Например, предположим, что у вас есть страница:
<html>
<body>
<table><tr><td>table 1</td></tr></table>
<div id="div_id">
<table><tr><td>table 2</td></tr></table>
</div>
</body>
</html>
Обычно вы вызываете методы элемента в браузере, который возвращает первый соответствующий элемент в браузере:
browser.table.text
#=> "table 1"
Вызывая метод элемента для элемента (вместо браузера), вы предлагаете найти элемент внутри другого элемента. Например:
browser.div(:id => 'div_id').table.text
#=> "table 2"
Вернет первую таблицу, которая находится в div с идентификатором ‘div_id’ (который находится в браузере).