В Watir для тестирования вам нужно найти элементы, и это можно сделать разными способами — с помощью идентификатора, класса или текста элемента.
В этой главе мы увидим несколько примеров, показывающих различные способы определения местоположения элементов.
Использование идентификатора элемента
Тестовая страница
<html> <head> <title>Testing UI using Watir</title> </head> <body> <script type = "text/javascript"> function wsentered() { console.log("inside wsentered"); var firstname = document.getElementById("firstname"); if (firstname.value != "") { document.getElementById("displayfirstname").innerHTML = "The name entered is : " + firstname.value; document.getElementById("displayfirstname").style.display = ""; } } </script> <div id = "divfirstname"> Enter First Name : <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" /> </div> <br/> <br/> <div style = "display:none;" id = "displayfirstname"> </div> </body> </html>
пример
require 'watir' b = Watir::Browser.new :chrome b.goto('http://localhost/uitesting/textbox.html') t = b.text_field(id: 'firstname') // using the id of the textbox to locate the textbox t.exists? t.set 'Riya Kapoor' b.screenshot.save 'textboxbefore.png' t.value t.fire_event('onchange') b.screenshot.save 'textboxafter.png'
В этом примере мы используем id элемента textbox, чтобы найти его и установить значение.
t = b.text_field(id: 'firstname')
Выход
Если вам нужно найти тег div, span или любой другой html-тег, вы можете сделать то же самое, используя id, следующим образом:
Для див
browser.div(id: "divid") browser.div(id: /divid/)
Для пролета
browser.span(id: "spanid") browser.span(id: /spanid/)
Используя НАИМЕНОВАНИЕ элемента
Тестовая страница
<html> <head> <title>Testing UI using Watir</title> </head> <body> <script type = "text/javascript"> function wsentered() { console.log("inside wsentered"); var firstname = document.getElementById("firstname"); if (firstname.value != "") { document.getElementById("displayfirstname").innerHTML = "The name entered is : " + firstname.value; document.getElementById("displayfirstname").style.display = ""; } } </script> <div id = "divfirstname"> Enter First Name : <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" /> </div> <br/> <br/> <div style = "display:none;" id = "displayfirstname"> </div> </body> </html>
пример
require 'watir' b = Watir::Browser.new :chrome b.goto('http://localhost/uitesting/textbox.html') t = b.text_field(name: 'firstname') // name is used to locate the textbox element t.exists? t.set 'Riya Kapoor' b.screenshot.save 'textboxbefore.png' t.value t.fire_event('onchange') b.screenshot.save 'textboxafter.png'
Выход
Использование имени тега
Вы можете найти любые html-элементы, которые вы хотите, напрямую используя html-тег, как показано ниже.
Для див
browser.div(id: "divid") browser.div(id: /divid/)
Для пролета
browser.span(id: "spanid") browser.span(id: /spanid/)
Для тега p
browser.p(id: "ptag") browser.p(id: /ptag/)
Для кнопки
browser.button(id: "btnid") browser.button(id: /btnid/)
Использование имени класса
Вы можете найти элемент, используя его имя класса. Это можно сделать как показано ниже —
Для див
browser.div(class: "divclassname") browser.div(class: /divclassname/)
Для пролета
browser.span(class: "spanclassname”) browser.span(class: /spanclassname/)
Для тега p
browser.p(class: "pclassname") browser.p(class: /pclassname/)
Для кнопки
browser.button(class: "btnclassname") browser.button(class: /btnclassname/)
Для текстового поля
browser.text_field(class: 'txtclassname') browser.text_field(class: /txtclassname/)
Вы также можете пройти несколько классов, как показано ниже —
Для див
browser.div(class: ["class1", "class2"])
Используя текст
Это еще один способ найти элементы, используя элементы с текстом. Например —
browser.button(text: "button text") browser.button(text: /button text/)
Использование метки
Вы можете использовать метку элемента, чтобы найти его, как показано ниже —
browser.text_field(label: "text here")) browser.text_field(label: /text here/))
Использование атрибутов данных
В случае если у вас есть атрибуты данных для ваших HTML-тегов, вы можете найти элементы, используя их, как показано ниже —
Например, вы можете найти тег, как показано ниже —
<div data-type = "test1"></div>
Вы можете найти div следующим образом:
browser.div(data-type: 'test1')) browser.div(data-type: /test1/))
Использование пользовательских атрибутов
Вы также можете найти элементы с помощью пользовательских атрибутов, как показано ниже —
Пример HTML-элемента
<div itemprop = ”content”> …. </div>
Вы можете найти div следующим образом:
browser.div(itemprop: ‘content')) browser.div(itemprop: /content/))
Использование видимого атрибута
Элемент, использующий атрибут visible, может быть расположен, как показано ниже —