Нужна помощь в поиске определенного метода из API Watir-Webdriver

#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’ (который находится в браузере).