当前位置: 首页 > news >正文

Web自动化测试框架Watir(基于Ruby) - 第2章 使用Watir写自动化测试脚本

一、先来看一个小DEMO

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

image

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

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

    代码如下:

 1 #encoding: utf-8
 2 #测试百度搜索
 3 require 'watir'
 4 puts "打开浏览器"
 5 browser = Watir::Browser.new
 6 sleep 2 #延时2秒执行下一行
 7 puts "进入百度首页"
 8 browser.goto 'http://www.baidu.com/'
 9 sleep 2
10 puts "搜索“淘宝”"
11 browser.text_field(:name => 'wd').set '淘宝'
12 browser.button(:value => '百度一下').click
13 sleep 2
14 puts "搜索“腾讯”"
15 browser.text_field(:name => 'wd').set '腾讯'
16 browser.button(:value => '百度一下').click
17 sleep 2
18 puts "搜索“新浪微博”"
19 browser.text_field(:name => 'wd').set '新浪微博'
20 browser.button(:value => '百度一下').click
21 sleep 2
22 puts "搜索“博客园”"
23 browser.text_field(:name => 'wd').set '博客园'
24 browser.button(:value => '百度一下').click
25 sleep 2
26 puts "搜索“Google”"
27 browser.text_field(:name => 'wd').set 'Google'
28 browser.button(:value => '百度一下').click
29 puts "脚本运行完毕!"

 

image

图1-2 命令行输出情况

    输入命令:ruby testBaidu2.rb

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

 

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

 1 文本框:
 2      <INPUT id="email" name="_fmu.u._0.e" value="" />
 3      方法1: ie.text_field(:id,'email').set("文本内容")
 4      方法2: ie.text_field(:name, 'email').set("文本内容")
 5      方法3: ie.text_field(:name,"email").clear
 6 
 7 
 8 下拉框:
 9     <SELECT name="cert_no"> 
10         <OPTION value="身份证">身份证</OPTION>
11     </SELECT>
12     方法1: ie.select_list(:name,"cert_no").select("身份证") 
13     方法2: ie.select_list(:name,"cert_no").clearSelection
14 
15 
16 超链接:
17     <a href = "http://www.google.cn/">google</a> 
18     方法1:ie.link(:text,"google").click 
19     方法2:ie.link(:url,"http://www.google.cn/").click
20 
21 
22 
23 复选框:
24     <input type = "checkbox" name = "checkme" value = "1"> 
25     方法1: ie.checkbox(:name,"checkme").set 
26     方法2: ie.checkbox(:name,"checkme").clear 
27     方法3: values = ie.checkbox(:name,"checkme").value
28     <input type = "checkbox" name = "checkme" value = "2"> 
29     #多个同名的复选框处理
30     方法1: ie.checkbox(:name,"checkme","2").set 
31     方法2: ie.checkbox(:name,"checkme","2").clear
32 
33 
34 单选框:
35     <input type = "radio" name = "clickme" id = "1"> 
36     方法1: ie.radio(:name, "clickme").set 
37     方法2: ie.radio(:name, "clickme").clear
38 
39 
40 一般按钮:
41     <input type = "button" name = "clickme" value = "Click Me"> 
42     方法1: ie.button(:value, "Click Me").click 
43     方法2: ie.button(:name,"clickme").click
44 
45 
46 submit按钮:
47     <form action = "submit" name = "submitform" method = "post">
48        <input type = "submit" value = "Submit"></input>
49     </form> 
50     方法: ie.button(:value."Submit").click
51 
52 
53 图片按钮:
54     <form action ="submit" name = "doitform" method = "post">
55         <input type = "image" src = "images/doit.gif" name = "doit">
56     </form> 
57     方法:ie.button(:name, "doit").click
58 
59 
60 Form中无按钮:
61     <form action = "login" name = "loginform" method = "get">
62         <input name = "username" type = "text"></input>
63     </form> 
64     方法1:ie.form(:name,"loginform").submit 
65     方法2:ie.form(:action,"login").submit
66 
67 
68 获取隐含对象值:
69     <INPUT type=hidden value="您的Email" name="field1">
70     方法:values = ie.hidden(:name,'field1').value 
71 
72 
73 获取窗口对象:
74     #根据URL获取
75     方法1: ie2 = Watir::IE.attach(:url,'http://www.google.cn/')
76     #根据窗口标题获取 
77     方法2: ie3 = Watir::IE.attach(:title,'Google')
78     #正则表达式匹配获取
79     方法3: ie4 = Watir::IE.attach(:title, /google.cn/)
80 
81 
82 URL编码:
83        require 'cgi'
84        string =  "URL编码"
85        string = CGI::escape(string)
86        puts string  # 转换结果: URL%B1%E0%C2%EB
87 
88 
89 URL解码:
90       require 'cgi'
91        string =  "URL%BD%E2%C2%EB"
92        string = CGI::unescape(string)
93        puts string  # 转换结果:URL解码

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

 

三、本章总结

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

 

转载须知:

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

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

联系邮箱:117711668@qq.com

欢迎交流!

转载于:https://www.cnblogs.com/zs8861/p/4062145.html

相关文章:

  • JSP 动作元素
  • Git很好的教程
  • 效果逆天的通用语言模型GPT 2.0来了,它告诉了我们什么?
  • [转]页面换肤功能浅析
  • 域名在QQ微信被拦截怎么办 怎么样才能让被微信屏蔽的网址正常访问使用
  • Cocos2dX Android 编译出错
  • 关于Mobius反演
  • 常用的正则表达式
  • 四边形不等式优化-石子合并
  • 机器学习笔记(一)线性回归
  • 【OCP-12c】CUUG 071题库考试原题及答案解析(18)
  • 锋利的jQuery-7--编写插件基础知识
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • 【持续跟新】剑指Offer_Java实现
  • js,jq发送短信倒计时
  • [数据结构]链表的实现在PHP中
  • Angular 2 DI - IoC DI - 1
  • Create React App 使用
  • javascript 总结(常用工具类的封装)
  • 动态魔术使用DBMS_SQL
  • 复杂数据处理
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端面试题总结
  • 实战|智能家居行业移动应用性能分析
  • 使用 QuickBI 搭建酷炫可视化分析
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • gunicorn工作原理
  • Spring第一个helloWorld
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (zhuan) 一些RL的文献(及笔记)
  • (二十四)Flask之flask-session组件
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (全注解开发)学习Spring-MVC的第三天
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十五)使用Nexus创建Maven私服
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)大道至简,职场上做人做事做管理
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .Net core 6.0 升8.0
  • .NET Core 中插件式开发实现
  • .NET 依赖注入和配置系统
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @31省区市高考时间表来了,祝考试成功
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @ModelAttribute注解使用
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)