一、先来看一个小DEMO

通过上一篇博文《Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署》的介绍,我们已经有了完整Watir运行环境,现在我们可以来试用一下Watir,来对其进一步了解;

图1-1 测试脚本:测试百度搜索

我们现在使用Watir来实现一个“百度搜索框测试”的自动测试,

代码如下:

 #encoding: utf-8
#测试百度搜索
require 'watir'
puts "打开浏览器"
browser = Watir::Browser.new
sleep 2 #延时2秒执行下一行
puts "进入百度首页"
browser.goto 'http://www.baidu.com/'
sleep 2
puts "搜索“淘宝”"
browser.text_field(:name => 'wd').set '淘宝'
browser.button(:value => '百度一下').click
sleep 2
puts "搜索“腾讯”"
browser.text_field(:name => 'wd').set '腾讯'
browser.button(:value => '百度一下').click
sleep 2
puts "搜索“新浪微博”"
browser.text_field(:name => 'wd').set '新浪微博'
browser.button(:value => '百度一下').click
sleep 2
puts "搜索“博客园”"
browser.text_field(:name => 'wd').set '博客园'
browser.button(:value => '百度一下').click
sleep 2
puts "搜索“Google”"
browser.text_field(:name => 'wd').set 'Google'
browser.button(:value => '百度一下').click
puts "脚本运行完毕!"

图1-2 命令行输出情况

输入命令:ruby testBaidu2.rb

如果运行没有问题的话,运行脚本的过程中,IE浏览器会自动打开,自动进入百度页面,然后自动搜索“淘宝”,得到搜素结果等等等,并在命令行输出如图1-2的输出字符串。

二、页面对象的各种测试方法

 文本框:
<INPUT id="email" name="_fmu.u._0.e" value="" />
方法1: ie.text_field(:id,'email').set("文本内容")
方法2: ie.text_field(:name, 'email').set("文本内容")
方法3: ie.text_field(:name,"email").clear 下拉框:
<SELECT name="cert_no">
<OPTION value="身份证">身份证</OPTION>
</SELECT>
方法1: ie.select_list(:name,"cert_no").select("身份证")
方法2: ie.select_list(:name,"cert_no").clearSelection 超链接:
<a href = "http://www.google.cn/">google</a>
方法1:ie.link(:text,"google").click
方法2:ie.link(:url,"http://www.google.cn/").click 复选框:
<input type = "checkbox" name = "checkme" value = "1">
方法1: ie.checkbox(:name,"checkme").set
方法2: ie.checkbox(:name,"checkme").clear
方法3: values = ie.checkbox(:name,"checkme").value
<input type = "checkbox" name = "checkme" value = "2">
#多个同名的复选框处理
方法1: ie.checkbox(:name,"checkme","2").set
方法2: ie.checkbox(:name,"checkme","2").clear 单选框:
<input type = "radio" name = "clickme" id = "1">
方法1: ie.radio(:name, "clickme").set
方法2: ie.radio(:name, "clickme").clear 一般按钮:
<input type = "button" name = "clickme" value = "Click Me">
方法1: ie.button(:value, "Click Me").click
方法2: ie.button(:name,"clickme").click submit按钮:
<form action = "submit" name = "submitform" method = "post">
<input type = "submit" value = "Submit"></input>
</form>
方法: ie.button(:value."Submit").click 图片按钮:
<form action ="submit" name = "doitform" method = "post">
<input type = "image" src = "images/doit.gif" name = "doit">
</form>
方法:ie.button(:name, "doit").click Form中无按钮:
<form action = "login" name = "loginform" method = "get">
<input name = "username" type = "text"></input>
</form>
方法1:ie.form(:name,"loginform").submit
方法2:ie.form(:action,"login").submit 获取隐含对象值:
<INPUT type=hidden value="您的Email" name="field1">
方法:values = ie.hidden(:name,'field1').value 获取窗口对象:
#根据URL获取
方法1: ie2 = Watir::IE.attach(:url,'http://www.google.cn/')
#根据窗口标题获取
方法2: ie3 = Watir::IE.attach(:title,'Google')
#正则表达式匹配获取
方法3: ie4 = Watir::IE.attach(:title, /google.cn/) URL编码:
require 'cgi'
string = "URL编码"
string = CGI::escape(string)
puts string # 转换结果: URL%B1%E0%C2%EB URL解码:
require 'cgi'
string = "URL%BD%E2%C2%EB"
string = CGI::unescape(string)
puts string # 转换结果:URL解码

如上代码为Watir的常用的API接口函数,这里就不每个都进行测试,大家有兴趣可以自己尝试着去使用。

三、本章总结

通过本章内容,可以初步的应用Watir对Web页面进行各种测试。

转载须知:

请尊重本人知识产权和劳动成果,本文可自由转载,请注明出处:

博客网址:http://www.cnblogs.com/zs8861/

联系邮箱:117711668@qq.com

欢迎交流!

Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本的更多相关文章

  1. Web自动化测试框架Watir(基于Ruby) - 第1章 Windows下安装与部署

    一.前言 Web自动化测试一直是一个比较迫切的问题,对于现在web开发的敏捷开发,却没有相对应的敏捷测试,故开此主题,一边研究,一边将Web自动化测试应用于工作中,进而形成能够独立成章的博文,希望能够 ...

  2. 选择适合入门的自动化测试框架TestNG 基于Java语言的入门选择之一

    对于测试工程师新手来说,最痛苦的莫过于入门,其实只要入门3个月左右,对于自动化测试,所有的测试工程师除了喜爱,就是更爱.自动化测试工作,是从根本上解放人性,不用重复去完成鼠标的点点点,例如以下测试常常 ...

  3. RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)

    好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...

  4. RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)

    本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramewor ...

  5. 基于Python接口自动化测试框架(初级篇)附源码

    引言 很多人都知道,目前市场上很多自动化测试工具,比如:Jmeter,Postman,TestLink等,还有一些自动化测试平台,那为啥还要开发接口自动化测试框架呢?相同之处就不说了,先说一下工具的局 ...

  6. 自动化测试框架Cucumber和Robot Framework的实战对比

    自动化测试框架Cucumber和RobotFramework的实战对比 一.摘要 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本:同时它需要拥有专业开发技能的人才能完成开发,且需要大量 ...

  7. 打造轻量级自动化测试框架WebZ

    一.什么是WebZ WebZ是我用Python写的“关键字驱动”的自动化测试框架,基于WebDriver. 设计该框架的初衷是:用自动化测试让测试人员从一些简单却重复的测试中解放出来.之所以用“关键字 ...

  8. RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍

    在使用AppiumLibrary库时,需要预先安装好Appium自动化工具,Appium官网地址为:http://appium.io/ Appium的GitHub地址为:https://github. ...

  9. 《一头扎进》系列之Python+Selenium框架设计篇1-什么是自动化测试框架-价值好几K的框架,不看别后悔,过时不候

    1. 什么是自动化测试框架 在了解什么是自动化测试框架之前,先了解一下什么叫框架?框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法:另一种定义认为,框架是可被应用开发者定制的 ...

随机推荐

  1. OAF 中下载使用XML Publisher下载PDF附件

    OAF doesn't readily expose the Controller Servlet's HttpRequest and HttpResponse objects so you need ...

  2. cocos2d-x安装教程

    cocos2d-x安装教程 cocos的安装方法有多种,今天讲的是其中一种,使用cocos的源代码直接进行编译. 下载cocos2d-x的源代码,提供两种方式给大家 -- 中文官网下载 -- 英文官网 ...

  3. Nutch相关视频教程3

    参考: http://www.cnblogs.com/huligong1234/p/3515214.html

  4. C#实现生产消费者模式

    void test() { int count = 0; // 临界资源区 var queue = new BlockingCollection<string>(); // 生产者线程 T ...

  5. 《Python》 函数嵌套、闭包和迭代器

    一.函数的嵌套: 1.函数的嵌套调用 def max2(x,y): m = x if x>y else y return m def max4(a,b,c,d): res1 = max2(a,b ...

  6. DevExpress v18.1新版亮点——ASP.NET篇(一)

    用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress ASP.NET v18.1 的新功能,快来下载试用新版本!点 ...

  7. DevExpress v18.1新版亮点——WPF篇(二)

    用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WPF v18.1 的新功能,快来下载试用新版本!点击下载& ...

  8. hibernate 各种主键生成策略(转)

    http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...

  9. centos7 docker 安装showdoc

    可参考 http://www.showdoc.cc/help?page_id=65610 1.下载代码,并上传服务器 https://github.com/star7th/showdoc 解压之后我的 ...

  10. Final阶段第1周/共1周 Scrum立会报告+燃尽图 03

    作业要求[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2482] 版本控制:https://git.coding.net/liuyy08 ...