Учебники

Watir — веб-элементы

В этой главе мы обсудим, как работать со следующими в Watir:

  • Работа с текстовыми полями
  • Работа с комбо
  • Работа с радио-кнопками
  • Работа с флажками
  • Работа с кнопками
  • Работа со ссылками
  • Работа с Div’s

Работа с текстовыми полями

Синтаксис

browser.text_field id: 'firstname' // will get the reference of the textbox

Здесь попытаемся понять, как работать с текстовыми полями в пользовательском интерфейсе.

Рассмотрим страницу Textbox.html, как показано ниже —

<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>

Соответствующий вывод как показано ниже —

Работа с текстовыми полями

У нас есть текстовое поле, когда вы вводите имя, событие onchange запускается, и имя отображается ниже.

Теперь давайте напишем код, в котором мы найдем текстовое поле, введем имя и запустим событие onchange.

Код Watir

require 'watir'
b = Watir::Browser.new :chrome
b.goto('http://localhost/uitesting/textbox.html')
t = b.text_field id: 'firstname'
t.exists?
t.set 'Riya Kapoor'
t.value
t.fire_event('onchange')

Мы используем браузер Chrome и передаем Pageurl как http: //localhost/uitesting/textbox.html .

Использование браузера goto api откроет Pageurl, и мы найдем текстовое поле с id: firstname. Если это существует, мы установим значение как Riya Kapoor и будем использовать fire_event api для запуска события onchange.

Теперь давайте запустим код для отображения вывода, как показано ниже —

Работа с TextBoxes Run

Работа с TextBoxes Выполнить вывод

Работа с комбо

Синтаксис

browser.select_list id: 'months' // will get the reference of the dropdown

Тестовая страница, которую мы собираемся протестировать, показана здесь —

<html>
   <head>
      <title>Dropdown</title>
   </head>
   
   <body>
      <script type = "text/javascript">
         function wsselected() {
            var months = document.getElementById("months");
            
            if (months.value != "") {
               document.getElementById("displayselectedmonth").innerHTML = 
                  "The month selected is : " + months.value;
               
               document.getElementById("displayselectedmonth").style.display = "";
            }
         }
      </script>
      <form name = "myform" method = "POST">
         <div>
            Month is :
            <select name = "months" id = "months" onchange = "wsselected()">
               <option value = "">Select Month</option>
               <option value = "Jan">January</option>
               <option value = "Feb">February</option>
               <option value = "Mar">March</option>
               <option value = "Apr">April</option>
               <option value = "May">May</option>
               <option value = "Jun">June</option>
               <option value = "Jul">July</option>
               <option value = "Aug">August</option>
               <option value = "Sept">September</option>
               <option value = "Oct">October</option>
               <option value = "Nov">November</option>
               <option value = "Dec">December</option>
            </select>
         </div>
         <br/>
         <br/>
         
         <div style = "display:none;" id = "displayselectedmonth">
         </div>
   </body>
</html>

Выход

Работа с комбо

Когда вы выбираете месяц из выпадающего списка, то же самое отображается ниже.

Давайте теперь проверим то же самое с помощью Watir.

Код Watir для выбора комбо

require 'watir'
b = Watir::Browser.new :chrome
b.goto('http://localhost/uitesting/combos.html')
t = b.select_list id: 'months'
t.exists?
t.select 'September'
t.selected_options
t.fire_event('onchange')

Для работы с комбо, вам нужно найти элемент select с помощью b.select_list api, за которым следует идентификатор выпадающего списка. Чтобы выбрать значение из выпадающего списка, вам нужно использовать t.select и желаемое значение.

Выход на исполнение выглядит следующим образом —

Работа с комбинированным выводом

Работа с радио-кнопками

Синтаксис

browser.radio value: 'female' 
// will get the reference of the radio button with value “female”

Вот тестовая страница, которую мы будем использовать для работы с переключателями —

<html>
   <head>
      <title>Testing UI using Watir</title>
   </head>
   
   <body>
      <form name = "myform" method = "POST">
         <b>Select Gender?</b>
         <div>
            <br/>
            <input type = "radio" name = "gender" value = "male" checked> Male
            <br/>
            <input type = "radio" name = "gender" value = "female"> Female
            <br/>
         </div>
      </form>
   </body>
   
</html>

Работа с радио-кнопками

Мы выберем переключатель со значением Женский, как показано в коде Watir —

require 'watir'
b = Watir::Browser.new
b.goto('http://localhost/uitesting/radiobutton.html')
t = b.radio value: 'female'
t.exists?
t.set
b.screenshot.save 'radiobutton.png'

Чтобы работать с переключателем, нам нужно сообщить браузеру о значении, которое мы выбираем, т.е. значение b.radio: ”female”

Мы также делаем снимок экрана и сохранили его как radiobutton.png, и то же самое отображается ниже —

Работа с выводом радио кнопок

Работа с флажками

Синтаксис

browser. checkbox value: 'Train' 
// will get the reference of the checkbox with value “Train”

Вот тестовая страница для флажков —

<html>
   <head>
      <title>Testing UI using Watir</title>
   </head>
   
   <body>
      <form name = "myform" method = "POST">
         <b>How would you like to travel?</b>
         <div>
            <br>
            <input type = "checkbox" name = "option1" value = "Car"> Car<br>
            <input type = "checkbox" name = "option2" value = "Bus"> Bus<br>
            <input type = "checkbox" name = "option3" value = "Train"> Train<br>
            <input type = "checkbox" name = "option4" value = "Air"> Airways<br>
            <br>
         </div>
      </form>
   </body>
   
</html>

Работа с флажками

Теперь давайте используем Watir, чтобы найти флажок в браузере, как показано ниже —

require 'watir'
b = Watir::Browser.new
b.goto('http://localhost/uitesting/checkbox.html')
t = b.checkbox value: 'Train'
t.exists?
t.set
b.screenshot.save 'checkbox.png'

Чтобы найти флажок в браузере, используйте b.checkbox со значением, которое вы хотите выбрать.

Работа с выводом флажков

Работа с кнопками

Синтаксис

browser.button(:name => "btnsubmit").click
// will get the reference to the button element with has name “btnsubmit”

Вот тестовая страница для кнопки —

<html>
   <head>
      <title>Testing UI using Watir</title>
   </head>
   
   <body>
      <script type = "text/javascript">
         function wsclick() {
            document.getElementById("buttondisplay").innerHTML = "Button is clicked";
            document.getElementById("buttondisplay").style.display = "";
         }
      </script>
      
      <form name = "myform" method = "POST">
         <div>
            <br>
            <input type = "button" id = "btnsubmit" name = "btnsubmit"
               value = "submit" onclick = "wsclick()"/>
            <br>
         </div>
      </form>
      <br/>
      
      <div style = "display:none;" id = "buttondisplay"></div>
   </body>
   
</html>

Работа с кнопками

Вот код Watir, чтобы найти кнопку на данной странице —

require 'watir'
b = Watir::Browser.new
b.goto('http://localhost/uitesting/button.html')
b.button(:name => "btnsubmit").click
b.screenshot.save 'button.png'

Вот скриншот button.png

кнопка

Работа со ссылками

Синтаксис

browser.link text: 'Click Here' 
// will get the reference to the a tag with text ‘Click Here’

Мы будем использовать следующую тестовую страницу для тестирования ссылок —

<html>
   <head>
      <title>Testing UI using Watir</title>
   </head>
   <body>
      <br/>
      <br/>
      <a href = "https://www.google.com">Click Here</a>
      <br/>
   </body>
</html>

Работа со ссылками

Детали Watir, необходимые для тестирования ссылок, приведены ниже:

require 'watir'
b = Watir::Browser.new
b.goto('http://localhost/uitesting/links.html')
l = b.link text: 'Click Here'
l.click
b.screenshot.save 'links.png'

Выход

Работа с выводом ссылок

Работа с выходами ссылок

Работа с Div’s

Синтаксис

browser.div class: 'divtag' 
// will get the reference to div with class “divtag”

Тестовая страница, где мы можем проверить на div.

<html>
   <head>
      <title>Testing UI using Watir</title>
      <style>
         .divtag {
            color: blue;
            font-size: 25px;
         }
      </style>
   </head>
   
   <body>
      <br/>
      <br/>
      <div class = "divtag"> UI Testing using Watir </div>
      <br/>
   </body>
</html>

Выход

Работа с Div

Код Watir для проверки div показан здесь —