English 中文(简体)
Watir - Quick Guide
  • 时间:2024-03-18 22:21:54

Watir - Quick Guide


Previous Page Next Page  

Watir - Overview

Watir (Web Apppcation Test in Duncan),clar as “Water” is an open source tool developed using Duncan, which helps in automating web apppcation that appropriates developed in any program Language. 浏览器为Watir安装互联网探测器、Setherine、Shata、Shatrah和Ege提供了支持。 瓦伊作为Rubygems可以安装。

瓦伊尔将与所提供的浏览器连接,并跟踪关于开放URL的指示,点击纽顿,在文本箱内输入数据,就像任何实际人员一样。 Watir最常用的测试框架,如RSpec、Cucumber等,支持其浏览器。

Features of Watir

如下文所述,Watir具有丰富的特征:

你们可以找到在浏览器内提供的网络教育。 大部分使用的是id、阶级、标签、习俗属性、标签等。

瓦伊里允许你根据需要对测试进行筛选。 这有助于跟踪中间测试。

您可以很容易地利用具有诸如性能.navigation、性能.timing、性能等性能物体衡量页数。 记忆和业绩。 页: 1 详情请与浏览器链接。

Page Object——Watir的物体将有助于我们以班级的形式重新使用该代码。 借助这一特点,我们可以把我们的手法自动化,而不必重复任何法典,也使之可以管理。

Downloads- With Watir, it is accessible to test filedown for UI or website.

Alerts-Watir提供了方便,可以方便地利用APIC来检测贵方或网站的警报。

免费检测——使用无头检查,细节在指挥线获得,无需打开浏览器。 这有助于在指挥线上执行调查组的测试案件。

Advantages of Using Watir

瓦伊里提供了以下优势:

    Watir是一个开放源工具,很容易使用。

    Watir在Ruby开发,任何在浏览器上运行的网络应用都能够很容易地利用watir实现自动化。

    所有最新的浏览器都在瓦伊里得到支持,便于测试。

    瓦伊里设有专用图书馆,以测试页面性能、警报、金字塔检测、浏览器窗、摄像等。

Disadvantages of Watir

和任何其他软件一样,Watir也有其局限性。

    Watir只支持Ruby测试框架,不能用于任何其他测试框架。

    使用Watir的移动测试没有得到加强,而台式浏览器被ick为流动浏览器,而不是实时装置。

Watir - Introduction

window. open popup即窗、不间断检测等。

支持的浏览器是:

    Internet Explorer

    Firefox

    Chrome

    Safari

    Edge

利用Watir网络用户,你可以测试你的网站和数据交换应用。 由于Watir充分注重与浏览器有关的障碍,你可以使用Watir和其他测试框架,如:

    RSpec

    Cucumber

主要测试法将采用测试框架,并在瓦伊的帮助下与浏览器进行互动。

测试框架与Watir的流通情况如下:

Rubygems

RSpec或Cumber参与测试操作器和测试代码。 该网站或ID测试的详情可细分为参考Watir的页标,届时将使用网页定位器进行测试。 Watir及其网络用户一道,帮助连接浏览器和进行测试自动化。

Watir - Environment Setup

为了与Watir合作,我们需要安装以下设备:

    Install Ruby

    Install Watir

    Ruby Mine (IDE)

由于Watir是用Ruby建造的,我们需要安装Ruby和gem(Ruby的包装经理)。

Ruby Installation on Windows

在Windows上安装Rub, 去到——

Ruby Installation

根据您的32或64个轨道操作系统,在全废墟上安装。 在这里,我们安装了屏幕显示的亮点。 一旦你下载,就采取相应步骤。

当你安装时,通过检查下文所示的指挥线的版本,检查是否安装了瓦 rub。

C:> ruby -v

如果能够成功安装,你可以看到以下产出:

Ruby Installed

安装的版本为2.6.3。 我们成功地把Ruby安装在我们系统中。 此外,还安装了Rubru安装板,即垃圾包管理人。 您可以检查安装的灰色版本如下:

Ruby Package Manager

我们在窗户安装了Ruby和Gem。

Ruby Installation on Linux

为安装Rubyt, 运行在你赖特终端的以下指挥系统:

wget -O ruby-install-0.6.0.tar.gz https://github.com/postmodern/ruby-install/archive/v0.6.0.tar.gz
tar -xzvf ruby-install-0.6.0.tar.gz
cd ruby-install-0.6.0/
sudo make install
ruby-install ruby 2.5.3

Ruby Installation for Mac

安装Rubyt, 运行在主星终端以下:

Install xcode

xcode-select --install

Install HomeBrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install rbenv

brew install rbenv
rbenv init
touch ~/.bash_profile
echo  eval "$(rbenv init -)"  >> ~/.bash_profile
source ~/.bash_profile
rbenv install 2.5.3
rbenv local 2.5.3

Instalpng Watir

安装轮胎的指挥部是:

gem 安装watir

gem 安装watir

接着,你可以观察如下所示的产出屏幕:

Instalpng Watir

RubyMine IDE

我们将利用Ruby Mine IDE撰写和执行我们的测试案例。 官方网站:

RubyMine IDE

Ruby Mine是一个经过30天的免费审判的有报酬的民主选举学会。 Cpck on free Trial button todown. 您也可以利用你选择的其他一些民主选举学会撰写测试案例。

在自由审判纽扣地盘上,它将开始下载。 一旦下载,就安装在你的系统上。

RubyMine Setup

接下来的Cpck开始安装。 安装完毕后,将开放国际民主和选举援助学会,并将请你设立如下项目:

RubyMine Installed

“创造新项目”的浮标,作为Watir,我们已经进入该项目的名称,在这里,是民主选举学会的显示。

New Project

我们将在瓦伊里/双倍中撰写我们的试验场,并加以执行。

Watir - Instalpng Drivers for Browsers

在这一章中,我们将安装浏览器驱动器,我们需要用Watir测试我们的项目。 在Watir 6之前,我们必须包括watir-webdriver,以利用浏览器司机。 随着Watir 6的释放,watir-webdriver作为Watir一揽子计划的一部分提供,用户不必单独增加watir-webdriver

pke、 Firefox、 Firefox和沙里夫等的浏览器是缺席提供的,你无需外加。 在对你进行测试时,你发现没有浏览器驾驶员的问题,你总是能够按照以下指示下载。

我们将安装司机,接下浏览器——

    Driver for Browsers - Chrome

    Driver for Browsers - Firefox

    Driver for Browsers - Edge

    Driver for Browsers - Internet Explorer

    Driver for Browsers - Safari

Driver for Browser - Chrome

要获得用于黄色浏览器的驱动力,要到:

Driver Browser

检查你的浏览器版本,并相应下载 Chrome司机。 如本文所示,检查你的幼苗浏览器版本。

Chrome driver

关于谷歌和 Chrome的浮雕将给你下文所示的神hr版。

Chrome Version

因此,我们的版本是74。 因此,下载剪辑驱动器74。

Download Chrome Driver

其次,根据您的操作系统下载神学院司机。 我们将下载32台借机和64台借机。 如果你计划使用所下载的驾驶员,则在您的PATH变量上增加一个地点。

Driver for Browser - Firefox

https://github.com/mozilla/geckodriver/releases> 如下表所示:

Download Firefox

按照你的业务制度,下载上述司机。 如果你计划使用下载的驾驶员,则在你的PATH变量上增加一个地点。

Driver for Browser - Edge

https://developer.microsoft.com/en-us/microsoft/tools/webdriver/> 如下表所示:

Driver Browser Edge

微软版本的Cpck 页: 1

Microsoft Edge

Cpck on Releasepnk, it will redirect 你:

Version Number

在此,你可以找到窗户下载版本。 如果你计划使用所下载的驾驶员,则在您的PATH变量上增加一个地点。

Driver for Browser - Internet Explorer

安装互联网探索者的驱动力将达到:。 如下所示:

Internet Explorer

国际电子计算机下载科的细节见本文:

Download Section

根据你的顾问,下载了32或64个轨道窗口。 此外,在您的PATH变量中添加位置,以利用司机。

Drivers for Browsers - Safari

聋人司机不必从外部下载10版。 它们在安装Watir时,连同gem包裹被下载。

请注意,Watir安装时,也可提供“ Chrome”、“ Firefox”、“因特网探索者”。 但是,如果你面临任何问题,需要经过测试的具体版本,你可以按照您的浏览器下载这些版本,并更新PATH的位置,在测试你的申请时加以利用。

Watir - Working with Browsers

否则,Watir将在不具体说明浏览器名称的个案中打开。 所需浏览器司机与Watir安装一起安装。 如果你面临与浏览器合作的任何问题,安装浏览器驾驶员一章所示的驾驶员,并更新PATH变量的位置。

在本章中,我们将了解如何打开使用Watir的浏览器。

Steps to Open a Browser using Watir

1. 开放民主选举学会RubyMine,并创建新的档案:测试1.rb

Browser Using Watir

IDE RubyMine

选择K和点击档案格式如下:

File Pattern

Cpck on OK to estabpsh the file.

我们现在将起草一份简单法典,开放浏览器,如下文所示:

test1.rb

require  watir 
Watir::Browser.new
Simple Code

上文所显示的《发展信息网》中强调的《鲁顿》浮标。 在Run的浮标上,它将打开浏览器,如下所示:

Run Button

浏览器将自动开放和关闭。 现在,让我们在试验1.rb中增加一些法典。

我们可以具体说明如下浏览器的名称:

Example for Chrome

require  watir 
Watir::Browser.new :chrome

现在让我们在我们试验场开一个页。

Example

require  watir 
browser = Watir::Browser.new
browser.goto("https://www.google.com")

显示如下产出的Run的浮标:

Test Case Output

同样,你可以打开火ox、聋.、互联网探测器浏览器。

Example for Firefox

require  watir 
Watir::Browser.new :firefox
Example for Firefox

Example for Internet Explorer

require  watir 
browser = Watir::Browser.new :ie
browser.goto("https://www.google.com")

在出现错误之后,我们实施守则时——

Unable to find IEDriverServer. Please download the server from
(Selenium::WebDriver::Error::WebDriverError)

http://selenium-release.storage.googleapis.com/index.html and place it
somewhere on your PATH.

More info at
https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver.

这意味着,轮胎包裹没有互联网供应商司机。 我们从这里下载了同样的内容——。 并更新在PATH变量中。

现在再次看到因特网探索者浏览器开张,如下文所示:

Explorer Browser Opening

Watir code to open Safari Browser

require  watir 
browser = Watir::Browser.new :safari
browser.goto("https://www.google.com")

Watir code to Microsoft Edge browser

require  watir 
browser = Watir::Browser.new :edge
browser.goto("https://www.google.com")

Watir - Web Elements

在这一章中,我们将讨论如何在瓦伊开展工作。

    Working with Textboxes

    Working with Combos

    Working with Radio Buttons

    Working with Checkboxes

    Working with Buttons

    Working with Links

    Working with Div’s

Working with Textboxes

Syntax

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

这里将设法了解如何与《国际不动产合同》文本箱合作。

考虑页文本框。

<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>
      
      <span id = "spanfirstname">
         Enter First Name : 
         <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" />
      </span>
      <br/>
      <br/>
      <span style = "display:none;" id = "displayfirstname"></span>
   </body>
</html>

相应产出如下:

Working with TextBoxes

我们有一个文字箱,当你进入换面活动时,名字就会落到下面。

现在请我们写这部法典,我们将在其中找到文本箱,并输入名称,并焚烧换面活动。

Watir Code

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 )

我们正在使用黄色浏览器,并将页数作为http:// localhost/uitesting/text Box.html

使用goto api browser将打开网页,我们将找到文本——有点:第一点。 如果存在,我们将确定Riya Kapoor的价值,并将使用fire_event。 api to fire the onchange activity.

现在,让我们执行守则,显示以下产出:

Working with TextBoxes Run

Working with TextBoxes Run Output

Working with Combos

Syntax

browser.select_pst 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">
         <span>
            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>
         </span>
         <br/>
         <br/>
         
         <span style = "display:none;" id = "displayselectedmonth">
         </span>
   </body>
</html>

Output

Working with Combos

当你从下降中选择一个月时,情况如下。

我们现在用Watir来测试同样的情况。

Watir Code for combo selection

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

为了与 com公司合作,你需要找到使用b.select_pst api的选定元素,然后是 drop倒。 为了从下降中挑选出价值,你需要使用电灯和你想要的价值。

执行产出如下:

Working with Combos Output

Working with Radio Buttons

Syntax

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

在这里,我们将使用一个试验页面,与无线电信 but合作。

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

我们将选择具有价值的女性的无线电台,如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 Value:”female

我们还以广播方式照亮并挽救了这些地雷。 页: 1

Working with Radio Buttons Output

Working with Checkboxes

Syntax

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 pke to travel?</b>
         <span>
            <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>
         </span>
      </form>
   </body>
   
</html>
Working with Checkboxes

现在,让我们利用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.check Box,贵方希望选择。

Working with Checkboxes Output

Working with Buttons

Syntax

browser.button(:name => "btnsubmit").cpck
// 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 wscpck() {
            document.getElementById("buttondisplay").innerHTML = "Button is cpcked";
            document.getElementById("buttondisplay").style.display = "";
         }
      </script>
      
      <form name = "myform" method = "POST">
         <span>
            <br>
            <input type = "button" id = "btnsubmit" name = "btnsubmit"
               value = "submit" oncpck = "wscpck()"/>
            <br>
         </span>
      </form>
      <br/>
      
      <span style = "display:none;" id = "buttondisplay"></span>
   </body>
   
</html>
Working with Buttons

这里是《瓦伊夫法典》,以查找特定网页上的 but子。

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

这里是shot。 页: 1

Button

Working with Links

Syntax

browser.pnk text:  Cpck Here  
// will get the reference to the a tag with text ‘Cpck Here’

我们将使用以下试验页面测试链接——

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

用于测试链接的Watir详细情况如下:

require  watir 
b = Watir::Browser.new
b.goto( http://localhost/uitesting/pnks.html )
l = b.pnk text:  Cpck Here 
l.cpck
b.screenshot.save  pnks.png 

Output

Working with Links Output

Working with Links Outputs

Working with Div’s

Syntax

browser.span class:  spantag  
// will get the reference to span with class “spantag”

我们可以测试一页。

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

Output

Working with Div

The Watir Code to test the span is psted here -

require  watir 
b = Watir::Browser.new
b.goto( http://localhost/uitesting/span.html )
l = b.span class:  spantag 
l.exists?
l.text
b.screenshot.save  spantag.png 

Output

Working with Div Output

Watir - Locating Web Elements

在Watir,为了测试,你需要找到这些要素,并且可以用不同的方式——通过使用该要素的补贴、分类或文本。

在本章中,我们将看到几个例子,它们显示了确定要素的不同方法。

Using ID of the Element

Test page

<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>
      
      <span id = "spanfirstname">
         Enter First Name : 
         <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" />
      </span>
      <br/>
      <br/>
      <span style = "display:none;" id = "displayfirstname">
      </span>
   </body>
</html>

Example

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 

举例来说,我们正在利用文本箱子的复制件来查找这些内容并确定其价值。

t = b.text_field(id:  firstname )

Output

Using ID

Using ID Element

如果你需要找到四舍五入、四舍五入或其他任何html的tag子,你可以做如下的一样。

For span

browser.span(id: "spanid")
browser.span(id: /spanid/)

For span

browser.span(id: "spanid")
browser.span(id: /spanid/)

Using NAME of the Element

Test page

<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>
      
      <span id = "spanfirstname">
         Enter First Name : 
         <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" />
      </span>
      <br/>
      <br/>
      <span style = "display:none;" id = "displayfirstname">
      </span>
   </body>
</html>

Example

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 

Output

Using ID

Using ID Element

Using Tag Name

如下文所示,你可以通过直接使用html标签找到你想要的任何html要素。

For span

browser.span(id: "spanid")
browser.span(id: /spanid/)

For span

browser.span(id: "spanid")
browser.span(id: /spanid/)

For p tag

browser.p(id: "ptag")
browser.p(id: /ptag/)

For button

browser.button(id: "btnid")
browser.button(id: /btnid/)

Using Class Name

您可使用其类别名称查找该元素。 具体做法如下:

For span

browser.span(class: "spanclassname")
browser.span(class: /spanclassname/)

For span

browser.span(class: "spanclassname”)
browser.span(class: /spanclassname/)

For p tag

browser.p(class: "pclassname")
browser.p(class: /pclassname/)

For button

browser.button(class: "btnclassname")
browser.button(class: /btnclassname/)

For textbox

browser.text_field(class:  txtclassname )
browser.text_field(class: /txtclassname/)

你们也可以通过如下文所示的多种课程:

For span

browser.span(class: ["class1", "class2"])

Using Text

这也是使用案文内容确定要素的又一个途径。 例如:

browser.button(text: "button text")
browser.button(text: /button text/)

Using Label

您可使用该要素的标签,将其定位如下:

browser.text_field(label: "text here"))
browser.text_field(label: /text here/))

Using Data Attributes

如果有数据属您的html标签,你可以找到下文所示内容。

例如,你可以找到以下标记:

<span data-type = "test1"></span>

您可以确定如下四点:

browser.span(data-type:  test1 ))
browser.span(data-type: /test1/))

Using Custom Attributes

您也可以找到使用以下习俗特性的要素:

Example of html element

<span itemprop = ”content”>
   ….
</span>

您可以确定如下四点:

browser.span(itemprop: ‘content ))
browser.span(itemprop: /content/))

Using Visible Attribute

使用可见特性的成分可如下所示:

browser.span(visible: true)
browser.span(visible: false)

Watir - Working with Iframes

Watir很容易利用yn子与 if子合作。

Syntax

browser.iframe(id:  myiframe ) 
// will get the reference of the iframe where we want to input details.

为了了解如何处理金字塔和确定仪表内各项要素,我们将以实例开展工作。

Example

main.html

<html>
   <head>
      <title>Testing using Watir</title>
   </head>
   <body>
      <iframe src = "test1.html" id = "myiframe" width = "500" height = "100"></iframe>
   </body>
</html>

test1.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>
      
      <span id = "spanfirstname">
         Enter First Name : 
         <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" />
      </span>
      <br/>
      <br/>
         <span style = "display:none;" id = "displayfirstname"></span>
   </body>
</html>

Output

Iframe

在上述例子中,入境表格在一行内界定。 瓦伊夫法典将帮助我们找到并测试表格。

Watir Code

require  watir 
b = Watir::Browser.new :chrome
b.goto( http://localhost/uitesting/main.html )
t = b.iframe(id:  myiframe ).text_field
t.set  Riya Kapoor 
b.screenshot.save  iframetestbefore.png 
t.fire_event( onchange )
b.screenshot.save  iframetestafter.png 

瓦伊夫法典,将iframe放在此处的圆顶上——

t = b.iframe(id:  myiframe ).text_field

我们使用了上面所示的标签框架和仪表。

以上准则的筛选情况如下:

iframetestbefore.png

Using ID

iframetestafter.png

Using ID Element

Watir - Automatic Waits

在本章中,让我们明白,要等一些细节。 为了理解自动等待,我们创建了一个简单的测试页。 当用户进入文本箱交换活动时,在3秒之后,才允许纽伦。

Watir有wait_unit。 a 等待特定事件或财产的电话。 我们将对以下试验页进行测试:

Syntax

browser.button(id:  btnsubmit ).wait_until(&:enabled?)
//here the wait is on the button with id : btnsubmit to be enabled.

testwait.html

<html>
   <head>
      <title>Testing UI using Watir</title>
   </head>
   
   <body>
      <script type = "text/javascript">
         function wsentered() {
            setTimeout(function() {
            document.getElementById("btnsubmit").disabled = false; }, 3000);
         }
         function wsformsubmitted() {
            document.getElementById("showmessage").style.display = "";
         }
      </script>
      
      <span id = "spanfirstname">
         Enter First Name : 
         <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" />
      </span>
      <br/>
      <br/>
      <button id = "btnsubmit" disabled oncpck = "wsformsubmitted();">Submit</button>
      <br/<
      <br/<
      
      <span id = "showmessage" style = "display:none;color:green;font-size:25px;"&gtl;
         Button is cpcked
      </span>
   </body>
</html>

Output

Automatic Waits

当你进入文本箱时,你将不得不等待3秒才能使纽芬兰成为可能。

Automatic Waits

当你点击Submitutton时,展示了以下案文:

Submit Button

现在,由于我们增加了使纽托邦能够进入的拖延,因此很难进行自动化处理。 每当我们出现一些拖延或不得不等待某一事件或将要找到的那部分财产时,我们就可以利用等待——如下所示——

Watir code using wait_until

require  watir 
b = Watir::Browser.new :chrome
b.goto( http://localhost/uitesting/testwait.html )
t = b.text_field(name:  firstname )
t.exists?
t.set  Riya Kapoor 
b.screenshot.save  waittestbefore.png 
t.value
t.fire_event( onchange )
btn = b.button(id:  btnsubmit ).wait_until(&:enabled?)
btn.fire_event( oncpck );
b.screenshot.save  waittestafter.png 

其次,使用以下指挥系统:

btn = b.button(id:  btnsubmit ).wait_until(&:enabled?)

瓦伊尔将等到纽顿才获得许可,随后将进行点击。 播放的屏幕如下:

Waittestbefore.png

Waittestbefore

waittestafter.png

waittestafter

Watir - Headless Testing

在这一章中,我们将学会如何利用Watir网络用户的无头选择来测试该网页。

Syntax

Browser = Watir::Browser.new :chrome, headless: true

我们将要测试的试验页在这里显示:

<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>
      
      <span id = "spanfirstname">
         Enter First Name : <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" />
      </span>
      <br/>
      <br/>
      <span style = "display:none;" id = "displayfirstname"></span>
   </body>
</html>

Output

Using ID Element

Watir code

require  watir 
b = Watir::Browser.new :chrome, headless: true
b.goto( http://localhost/uitesting/textbox.html )
t = b.text_field(name:  firstname )
t.exists?
t.set  Riya Kapoor 
t.value
t.fire_event( onchange )
b.screenshot.save  headless.png 

我们增加了以下选择: 确实是Watir chrome browser。 当你执行鲁比方案时,不会打开浏览器,一切都会在指挥线上执行——

DevTools pstening on ws://127.0.0.1:53973/devtools/browser/b4127866-afb8-4c74-b967-5bacb3354b19
[0505/144843.905:INFO:CONSOLE(8)] "inside wsentered", source: http://localhost/uitesting/textbox.html (8)

我们在指挥线上添加了ole语和同样的文字。

头盔检查。 页: 1

Using ID Element

In Firefox

The watir Code for > is reflected here -

require  watir 
b = Watir::Browser.new :firefox, headless: true
b.goto( http://localhost/uitesting/textbox.html )
t = b.text_field(name:  firstname )
t.exists?
t.set  Riya Kapoor 
t.value
t.fire_event( onchange )
b.screenshot.save  headlessfirefox.png 

这里显示的是无脊椎动物的屏幕。

Using ID Element

Watir - Mobile Testing

为了进行流动测试,我们将使用桌面浏览器,作为测试工具浏览器。 让我们理解本章中的程序。

为了测试你在移动浏览器上的用量,我们需要安装网络用户-用户。

Instalpng webdriver-user-agent

gem install webdriver-user-agent
Install Webdriver

现在,我们将使用网络用户使用力,如下文所示:

Example

require  watir 
require  webdriver-user-agent 
driver = Webdriver::UserAgent.driver(browser: :chrome, agent: :iphone, orientation: :landscape)
browser = Watir::Browser.new driver
browser.goto  https://facebook.com 
puts "#{browser.url}"
puts browser.url ==  https://m.facebook.com/ 

我们提供了面纱。 如下文所示,在你执行时,根据使用剂,以移动方式开放。

Facebook

让我们现在以 por魔方式努力。 为此使用以下法典:

require  watir 
require  webdriver-user-agent 
driver = Webdriver::UserAgent.driver(browser: :chrome, agent: :iphone, orientation: :portrait)
browser = Watir::Browser.new driver
browser.goto  https://facebook.com 
puts "#{browser.url}"
puts browser.url ==  https://m.facebook.com/ 

彩色模式的产出如下所示:

portrait mode

Watir - Capturing Screenshots

掌握屏幕照片的能力是Watir的有趣特征之一。 在测试自动化期间,你可以抽取屏幕并节省屏幕。 如果发生任何错误,可在屏幕上加以记录。

下文将讨论一个简单的例子,以及测试页,我们在那里进行了筛选。

Syntax

browser.screenshot.save  nameofimage.png 

Test page

<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>
      <span id = "spanfirstname">
         Enter First Name :
         <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" />
      </span>
      <br/>
      <br/>
      <span style = "display:none;" id = "displayfirstname"></span>
   </body>
</html>

Example

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 

我们使用Watir的屏幕显示在这里:

textboxbefore.png

Using ID

textboxafter.png

Using ID Element

Watir - Page Objects

瓦杰里的目标页有助于我们以班级的形式重新使用该守则。 利用网页物体特征,我们可以自动进行,而不必重复任何代码,并使该代码能够管理。

在测试时,我们可以为将要测试的每页打上一页。 然后,我们将使用该页标语获取方法和财产。

使用页标的理由——

    如果在改动时对该页作任何改动,则不必重写该代码。

    避免法典重复。

我们将利用RSpec在瓦伊使用页面目标。 如果你不熟悉RSpec,这里是可供你学习的全套教学课程:

在这里,我们将进行测试。

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>
      
      <span id = "spanfirstname">
         Enter First Name : 
         <input type = "text" id = "firstname" name = "firstname" onchange = "wsentered()" />
      </span>
      <br/>
      <br/>
      <span style = "display:none;" id = "displayfirstname"></span>
   </body>
</html>

Output

Working with Textboxes Run Output

我们现在为上述网页制造一页物体,如下文所示:

pageobjecttest.rb

class InitiapzeBrowser
   def initiapze(browser)
      @browser = browser
   end
end

class TestPage lt; InitiapzeBrowser
   def textbox
      @textbox = TestTextbox.new(@browser)
   end
   def close
      @browser.screenshot.save  usingpageobject.png 
      @browser.close
   end
end # TestPage

class TestTextbox < InitiapzeBrowser
   URL = "http://localhost/uitesting/textbox.html"

   def open
      @browser.goto URL
      self
   end
   def enterdata_as(name)
      name_field.set name
      name_field.fire_event( onchange )
   end

private
   def name_field
      @browser.text_field(:id > "firstname")
   end
end # TestTextbox

界定了三个班级:初始班轮、测试和试验箱。

    它将首先打开的浏览器,并将浏览器物体与测试Page和测试Text箱相分享。

    这个班子将反对测试Text箱,并载有筛选和关闭浏览器的方法。

    这一类别将采用办法开放网页,提及文本领域,确定数据和火力交换活动。

一旦执行上述守则,你就可以看到产出如下:

Using ID Element

Watir - Page Performance

Watir页的性能特征使你能够跟踪反应时间尺度,并在 Chrome、IE9及以上进行微调。 至今,Safaribrowser没有获得支持。

让我们更仔细地研究如何利用这一特点。 为了加以利用,我们需要使用下文所示的gem安装轮胎性能。

Command

gem 安装watir-performance
Watir Performance

我们安装了轮胎性能。 支持的指标是:

    summary

    navigation

    memory

    Timing

此处讨论了使用高射电效应的工作实例。 在此,我们将检查网站的回复时间——www.tutorialspoint.com。 如下所示:

require  watir 
require  watir-performance 
10.times do
   b = Watir::Browser.new :chrome
   b.goto  https://www.tutorialspoint.com 
   load_secs = b.performance.summary[:response_time] / 1000
   puts "Load Time: #{load_secs} seconds."
   b.close
end

output

Load Time: 7 seconds.
Load Time: 7 seconds.
Load Time: 5 seconds.
Load Time: 5 seconds.
Load Time: 6 seconds.
Load Time: 5 seconds.
Load Time: 5 seconds.
Load Time: 13 seconds.
Load Time: 12 seconds.
Load Time: 5 seconds.

Using performance.timing

require  watir 
require  watir-performance 

b = Watir::Browser.new :chrome
b.goto  https://www.tutorialspoint.com 
load_secs = b.performance.timing[:response_end] - b.performance.timing[:response_start]
puts "Time taken to respond is #{load_secs} seconds."
b.close

output

Time taken to respond is 41 seconds.

Using performance.navigation

require  watir 
require  watir-performance 

b = Watir::Browser.new :chrome
b.goto  https://www.tutorialspoint.com 
perf_nav = b.performance.navigation
puts "#{perf_nav}"
b.close

output

{:type_back_forward=>2, :type_navigate=>0, :type_reload=>1, 
:type_reserved=>255, :redirect_count=>0, :to_json=>{}, :type=>0}

Using performance.memory

require  watir 
require  watir-performance 

b = Watir::Browser.new :chrome
b.goto  https://www.tutorialspoint.com 
memory_used = b.performance.memory
puts "#{memory_used}"
b.close

output

{:js_heap_size_pmit=>2, :type_navigate=>0, :type_reload=>1, :ty2136997888, 
:total_js_heap_size=>2, :type_navigate=>0, :type_reload=>1, :ty12990756, 
:used_js_heap_size=>2, :type_navigate=>0, :type_reload=>1, :ty7127092}

Watir - Cookies

在本章中,我们将学会如何与使用Watir的厨师合作。

这里讨论的一个简单例子,将引出对所发的URL的 co。

Syntax to fetch cookies

browser.cookies.to_a

Example

require  watir 

b = Watir::Browser.new :chrome
b.goto  https://www.tutorialspoint.com 
puts b.cookies.to_a

Output

{:name=>"_gat_gtag_UA_232293_6", :value=>"1", :path=>"/", 
:domain=>".tutorialspoint.com", :expires=>2019-05-03 08:33:58 +0000, 
:secure=>false}

{:name=>"_gid", :value=&gt "GA1.2.282573155.1556872379", :path=>"/", 
:domain=>".tutorialspoint.com", :expires=>2019-05-04 08:32:57 +0000, 
:secure=>false}

{:name=>"_ga", :value=>"GA1.2.2087825339.1556872379", :path=>"/", 
:domain=>".tutorialspoint.com", :expires=>
2021-05-02 08:32:57 +0000, :secure=>false}

现在,我们要补充如下文ies:

Syntax to add cookies

browser.cookies.add  cookiename ,  cookievalue , path:  / , expires: 
(Time.now + 10000), secure: true

Example

require  watir 
b = Watir::Browser.new :chrome
b.goto  https://www.tutorialspoint.com 
puts b.cookies.to_a
b.cookies.add  cookie1 ,  testing_cookie , path:  / , expires: 
(Time.now + 10000), secure: true
puts b.cookies.to_a

Output Before Adding cookie

{:name=>"_gat_gtag_UA_232293_6", :value=>"1", :path=>"/", 
:domain=>".tutorialspoint.com", :expires=>2019-05-03 08:44:23 +0000, 
:secure=>false}

{:name=>"_gid", :value=>"GA1.2.1541488984.1556873004", 
:path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2019-05-04 08:43:24 +0000, :secure=>false}

{:name=>"_ga", :value=>"GA1.2.1236163943.1556873004", 
:path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2021-05-02 08:43:24 +0000, :secure=>false}

Output After adding cookie

{:name=>"_gat_gtag_UA_232293_6", :value=>"1", :path=>"/", 
:domain=>".tutorialspoint.com", :expires=>2019-05-03 08:44:23 +0000, 
:secure=>false}

{:name=>"_gid", :value=>"GA1.2.1541488984.1556873004", 
:path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2019-05-04 08:43:24 +0000, :secure=>false}

{:name=>"_ga", :value=>"GA1.2.1236163943.1556873004", 
:path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2021-05-02 08:43:24 +0000, :secure=>false}

{:name=>"cookie1", :value=>"testing_cookie", :path=>"/", 
:domain=>"www.tutorialspoint.com", :expires=>2039-04-28 08:43:35 +0000, 
:secure=>true}

请注意,最后一点是使用“watir”补充的。

Clear Cookies

Syntax

browser.cookies.clear

Example

require  watir 

b = Watir::Browser.new :chrome
b.goto  https://www.tutorialspoint.com 
puts b.cookies.to_a
b.cookies.clear
puts b.cookies.to_a

Output

{:name=>"_gat_gtag_UA_232293_6", :value=>"1", :path=>"/", 
:domain=>".tutorialspoint.com", :expires=>2019-05-03 08:48:29 +0000, 
:secure=>false}

{:name=>"_gid", :value=>"GA1.2.1264249563.1556873251", 
:path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2019-05-04 08:47:30 +0000, :secure=>false}

{:name=>"_ga", :value=>"GA1.2.1001488637.1556873251", 
:path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2021-05-02 08:47:30 +0000, :secure=>false

Empty response ie a blank pne will get printed after cookie.clear is called.

Delete a particular cookie

Syntax

browser.cookies.delete  nameofthecookie 

Example

require  watir 
b = Watir::Browser.new :chrome
b.goto  https://www.tutorialspoint.com 
puts b.cookies.to_a
puts b.cookies.delete "_ga"
puts b.cookies.to_a

Output

All cookies:
{:name=>"_gat_gtag_UA_232293_6", :value=>"1", :path=>"/", 
:domain=>".tutorialspoint.com", :expires=>2019-05-03 08:52:38 +0000, 
:secure=>false}

{:name=>"_gid", :value=>"GA1.2.1385195240.1556873499", 
:path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2019-05-04 08:51:37 +0000, :secure=>false}

{:name=>"_ga", :value=>"GA1.2.1383421835.1556873499", 
:path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2021-05-02 08:51:37 +0000, :secure=>false}

After delete cookie with name _ga
{:name=>"_gat_gtag_UA_232293_6", 
:value=>"1", :path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2019-05-03 08:52:38 +0000, :secure=>false}

{:name=>"_gid", :value=>"GA1.2.1385195240.1556873499", 
:path=>"/", :domain=>".tutorialspoint.com", 
:expires=>2019-05-04 08:51:37 +0000, :secure=>false}

Watir - Proxies

Watir允许在需要与浏览器使用的替代物体的帮助下使用代理。

Syntax

proxy = {
   http:  127.0.0.1:8080 ,
   ssl:  127.0.0.1:8080 
}
b = Watir::Browser.new :chrome, proxy: proxy

关于如何使用 proxy- b浏览器的例子如下:

Example

require "watir"
proxy = {
   http:  127.0.0.1:8080 ,
   ssl:  127.0.0.1:8080 
}
b = Watir::Browser.new :chrome, proxy: proxy
b.goto  google.com 
b.screenshot.save  proxy.png 

我们使用了下文所示代理物体:

proxy = {
   http:  127.0.0.1:8080 ,
   ssl:  127.0.0.1:8080 
}

代理人地址细节将同时用于https和sl。 我们可以使用下文所示的幼苗 b。

b = Watir::Browser.new :chrome, proxy: proxy

产出代理。 页: 1

Output Proxy

下文将讨论如何使用代谢物的例子。

Example

require "watir"
proxy = {
   http:  127.0.0.1:8080 ,
   ssl:  127.0.0.1:8080 
}
b = Watir::Browser.new :firefox, proxy: proxy
b.goto  google.com 
b.screenshot.save  proxyfirefox.png 

您可以补充以下代理细节:

proxy = {
   http:  127.0.0.1:8080 ,
   ssl:  127.0.0.1:8080 
}
b = Watir::Browser.new :firefox, proxy: proxy

此处显示的是产出代理火焰。

Output Proxy

Watir - Alerts

在本章中,我们将了解如何处理使用Watir的警报。

Syntax

browser.alert.exists?
browser.alert.ok
browser.alert.close

Testpage

<html>
   <head>
      <title>Testing Alerts Using Watir</title>
   </head>
   
   <body>
      <script type = "text/javascript">
         function wsformsubmitted() {
            alert("Button is Cpcked !");
         }
      </script>
      <button id = "btnsubmit" oncpck = "wsformsubmitted();">Submit</button>
   </body>
</html>

Watir Code

require  watir 
b = Watir::Browser.new :chrome
b.goto( http://localhost/uitesting/testalert.html )
b.button(id:  btnsubmit ).cpck
b.alert.ok
b.screenshot.save  alerttest.png 

产出警戒测试。 页: 1

Alert Test

Watir - Downloads

我们有国歌或国歌,或我们的网站,下载了国歌或国歌。 我们可以通过向浏览器提供一些优惠,测试如何使用Watir。

下载的星号——

prefs = {
    download  => {
       default_directory  => "C:/download",
       prompt_for_download  => false,
   }
}
b = Watir::Browser.new :chrome, options: {prefs: prefs}

这些预告已经下载,我们需要在下载后把档案储存起来的道路上,并且必须使用上文各行文中所示的备选办法向浏览器提供同样的信息。

这里举了一个工作例子。 在此,我们创建了一个纽州试验页面,被点击后将下载一个称为档案的档案。 a. 如下所示:

<html>
   <head>
      <title>Testing UI using Watir</title>
   </head>
   
   <body>
      <br/>
      <br/>
      <button id = "btnsubmit">
         <a href = "file.txt" download>Cpck to Download!</a>
      </button>
      <br/>
   </body>
</html>

file.txt

This is for testing watir download

Output

Testing Watir

当你点击下载的纽顿时,该档案被下载。

现在,让我们用Watir来测试同样的情况:

require  watir 
prefs = {
    download  => {
       default_directory  => "C:/download",
       prompt_for_download  => false,
   }
}
b = Watir::Browser.new :chrome, options: {prefs: prefs}
b.goto( http://localhost/uitesting/filedownload.html )
b.button(id:  btnsubmit ).cpck
b.screenshot.save  testdownload.png 

我们为存放下载的档案所走的道路是“C:/下载”。 当我们执行上述准则时,我们将在下载过程中下载以下文件:

download path

产出测试下载荷。 页: 1

testdownload

Watir - Browser Windows

你们将走到我们必须使用人口窗口或打开新的浏览器窗户的地方。 在本章中,我们将讨论如何利用Watir测试此类案件。

Syntax

browser.window

这里提供了我们将测试的一个工作例子:

<html>
   <head>
      <title>Testing UI using Watir</title>
   </head>
   
   <body>
      <script type = "text/javascript">
         function wscpck() {
            var myWindow = window.open(
               "https://www.google.com/", "mywindow", "width = 1000,height = 500");
         }
      </script>
      
      <form name = "myform" method = "POST">
         <span>
            <br>
            <input type = "button" id = "btnsubmit" name = "btnsubmit" value = "submit" oncpck = "wscpck()"/>
            <br>
         </span>
      </form>
      <br/>
   </body>
</html>

Output

Browser Windows

猪顿开放窗口的浮点打开。 这里,我们提供的尿液是 require watir b = Watir::Browser.new :chrome b.goto( http://localhost/uitesting/windowpopup.html ) b.button(id: btnsubmit ).cpck b.window(title: Google ).use do b.screenshot.save popupwindow.png t = b.text_field(class: gLFyf ) t.set Watir b.screenshot.save popupwindowbefore.png b.button(name: btnK ).cpck b.screenshot.save popupwindowafter.png end

我们的屏幕如下:

popupwindow.png

Working With Links Outputs

popupwindowbefore.png

Popupwindowbefore

popupwindowafter.png

Popupwindowafter
Advertisements