- Watir - Discussion
- Watir - Useful Resources
- Watir - Quick Guide
- Watir - Browser Windows
- Watir - Downloads
- Watir - Alerts
- Watir - Proxies
- Watir - Cookies
- Watir - Page Performance
- Watir - Page Objects
- Watir - Capturing Screenshots
- Watir - Mobile Testing
- Watir - Headless Testing
- Watir - Automatic Waits
- Watir - Working with Iframes
- Watir - Locating Web Elements
- Watir - Web Elements
- Watir - Working with Browsers
- Watir - Installing Drivers for Browsers
- Watir - Environment Setup
- Watir - Introduction
- Watir - Overview
- Watir - Home
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Watir - Quick Guide
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具有丰富的特征:
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
支持的浏览器是:
Internet Explorer
Firefox
Chrome
Safari
Edge
利用Watir网络用户,你可以测试你的网站和数据交换应用。 由于Watir充分注重与浏览器有关的障碍,你可以使用Watir和其他测试框架,如:
RSpec
Cucumber
主要测试法将采用测试框架,并在瓦伊的帮助下与浏览器进行互动。
测试框架与Watir的流通情况如下:
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, 去到——
根据您的32或64个轨道操作系统,在全废墟上安装。 在这里,我们安装了屏幕显示的亮点。 一旦你下载,就采取相应步骤。
当你安装时,通过检查下文所示的指挥线的版本,检查是否安装了瓦 rub。
C:> ruby -v
如果能够成功安装,你可以看到以下产出:
安装的版本为2.6.3。 我们成功地把Ruby安装在我们系统中。 此外,还安装了Rubru安装板,即垃圾包管理人。 您可以检查安装的灰色版本如下:
我们在窗户安装了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
接着,你可以观察如下所示的产出屏幕:
RubyMine IDE
我们将利用Ruby Mine IDE撰写和执行我们的测试案例。 官方网站:
Ruby Mine是一个经过30天的免费审判的有报酬的民主选举学会。 Cpck on free Trial button todown. 您也可以利用你选择的其他一些民主选举学会撰写测试案例。
在自由审判纽扣地盘上,它将开始下载。 一旦下载,就安装在你的系统上。
接下来的Cpck开始安装。 安装完毕后,将开放国际民主和选举援助学会,并将请你设立如下项目:
“创造新项目”的浮标,作为Watir,我们已经进入该项目的名称,在这里,是民主选举学会的显示。
我们将在瓦伊里/双倍中撰写我们的试验场,并加以执行。
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
要获得用于黄色浏览器的驱动力,要到:
检查你的浏览器版本,并相应下载 Chrome司机。 如本文所示,检查你的幼苗浏览器版本。
关于谷歌和 Chrome的浮雕将给你下文所示的神hr版。
因此,我们的版本是74。 因此,下载剪辑驱动器74。
其次,根据您的操作系统下载神学院司机。 我们将下载32台借机和64台借机。 如果你计划使用所下载的驾驶员,则在您的PATH变量上增加一个地点。
Driver for Browser - Firefox
https://github.com/mozilla/geckodriver/releases> 如下表所示:
按照你的业务制度,下载上述司机。 如果你计划使用下载的驾驶员,则在你的PATH变量上增加一个地点。
Driver for Browser - Edge
https://developer.microsoft.com/en-us/microsoft/tools/webdriver/> 如下表所示:
微软版本的Cpck 页: 1
Cpck on Releasepnk, it will redirect 你:
在此,你可以找到窗户下载版本。 如果你计划使用所下载的驾驶员,则在您的PATH变量上增加一个地点。
Driver for Browser - Internet Explorer
安装互联网探索者的驱动力将达到:
国际电子计算机下载科的细节见本文:
根据你的顾问,下载了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
选择K和点击档案格式如下:
Cpck on OK to estabpsh the file.
我们现在将起草一份简单法典,开放浏览器,如下文所示:
test1.rb
require watir Watir::Browser.new
上文所显示的《发展信息网》中强调的《鲁顿》浮标。 在Run的浮标上,它将打开浏览器,如下所示:
浏览器将自动开放和关闭。 现在,让我们在试验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的浮标:
同样,你可以打开火ox、聋.、互联网探测器浏览器。
Example for Firefox
require watir Watir::Browser.new :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.
这意味着,轮胎包裹没有互联网供应商司机。 我们从这里下载了同样的内容——
现在再次看到因特网探索者浏览器开张,如下文所示:
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>
相应产出如下:
我们有一个文字箱,当你进入换面活动时,名字就会落到下面。
现在请我们写这部法典,我们将在其中找到文本箱,并输入名称,并焚烧换面活动。
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 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
当你从下降中选择一个月时,情况如下。
我们现在用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 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>
我们将选择具有价值的女性的无线电台,如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 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>
现在,让我们利用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 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>
这里是《瓦伊夫法典》,以查找特定网页上的 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
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>
用于测试链接的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 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
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
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
如果你需要找到四舍五入、四舍五入或其他任何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 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
在上述例子中,入境表格在一行内界定。 瓦伊夫法典将帮助我们找到并测试表格。
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
iframetestafter.png
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;">l; Button is cpcked </span> </body> </html>
Output
当你进入文本箱时,你将不得不等待3秒才能使纽芬兰成为可能。
当你点击Submitutton时,展示了以下案文:
现在,由于我们增加了使纽托邦能够进入的拖延,因此很难进行自动化处理。 每当我们出现一些拖延或不得不等待某一事件或将要找到的那部分财产时,我们就可以利用等待——如下所示——
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
waittestafter.png
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
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
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
这里显示的是无脊椎动物的屏幕。
Watir - Mobile Testing
为了进行流动测试,我们将使用桌面浏览器,作为测试工具浏览器。 让我们理解本章中的程序。
为了测试你在移动浏览器上的用量,我们需要安装网络用户-用户。
Instalpng webdriver-user-agent
gem install webdriver-user-agent
现在,我们将使用网络用户使用力,如下文所示:
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/
我们提供了面纱。 如下文所示,在你执行时,根据使用剂,以移动方式开放。
让我们现在以 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/
彩色模式的产出如下所示:
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
textboxafter.png
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
我们现在为上述网页制造一页物体,如下文所示:
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
界定了三个班级:初始班轮、测试和试验箱。
一旦执行上述守则,你就可以看到产出如下:
Watir - Page Performance
Watir页的性能特征使你能够跟踪反应时间尺度,并在 Chrome、IE9及以上进行微调。 至今,Safaribrowser没有获得支持。
让我们更仔细地研究如何利用这一特点。 为了加以利用,我们需要使用下文所示的gem安装轮胎性能。
Command
gem 安装watir-performance
我们安装了轮胎性能。 支持的指标是:
summary
navigation
memory
Timing
此处讨论了使用高射电效应的工作实例。 在此,我们将检查网站的回复时间——
。 如下所示: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=> "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
下文将讨论如何使用代谢物的例子。
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
此处显示的是产出代理火焰。
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
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
当你点击下载的纽顿时,该档案被下载。
现在,让我们用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:/下载”。 当我们执行上述准则时,我们将在下载过程中下载以下文件:
产出测试下载荷。 页: 1
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
猪顿开放窗口的浮点打开。 这里,我们提供的尿液是