【Ruby+Watir测试框架系列讲座 3】测试对象识别

作者:zzxxbb112

时间:2011/11/8 版权所有,侵权必究。

出处:http://blog.csdn.net/zzxxbb112


本章主要简单介绍下Watir在自动化测试过程中的对象识别,其实所有自动化测试工具的识别原理都是如出一辙的,我们知道QTP的识别原理是预期封装对象鉴别属性(对象库)与实际封装对象鉴别属性(Spy)一致,那么对象即可识别,通俗的形容就是只要工具中描述的关键属性与实际对象的关键属性一致,那么对象即可被成功识别。那么在Watir其实也是一样,我们只需要通过描述正确无误的对象属性即可成功识别测试对象。


应用实例:

打开RadRails,新建一个项目,在脚本视图中输入以下代码

#引用watir包
require "watir"

#实例化Watir模块的IE类,打开IE浏览器
ie = Watir::IE.new

#跳转页面为IQuickTest领先技术博客首页
ie.goto("blog.csdn.net/zzxxbb112")

#获取到邮件订阅文本框对象
edit = ie.text_field(:name,"email")

#判断文本框对象是否存在
if edit.exist?()
  
  #输入邮箱地址
  edit.set("zzxxbb112@163.com")
  
  #高亮文本框
  edit.flash
  
  #打印结果
  puts "email订阅文本框存在"
  
end

分析:

可能你会一下子看到那么多代码会头晕,别急,我会一步步的解释每一行的意思。

#引用watir包
require "watir"
解析:主要的作用是导入Watir包,这样我们才能去试用watir库中的函数和类。注意引用方式为Require


#实例化Watir模块的IE类,打开IE浏览器
ie = Watir::IE.new
解析:这一步的作用主要是实例化IE浏览器,执行完此步骤后系统会自动打开IE浏览器


#跳转页面为IQuickTest领先技术博客首页
ie.goto("blog.csdn.net/zzxxbb112")
解析:这一步很简单,就是跳转到相应的网页地址


#获取到邮件订阅文本框对象
edit = ie.text_field(:name,"email")
解析:这一步是关键,Watir的对象识别主要就是靠它,当我们需要去识别一个对象时,首先需要去确认此对象的类型,这里我们使用IQuickTest博客首页的邮箱订阅文本框作为例子,如图



那么这里我们已经确认了对象类型为文本框,在Watir中文本框类型识别方法为text_field, 接着可以看到后面跟了:name,"email",这里的意思就代表需要去查找文本框的name属性值为email,如果匹配,则找到,否则对象识别失败。

#判断文本框对象是否存在
if edit.exist?()
  
  #输入邮箱地址
  edit.set("zzxxbb112@163.com")
  
  #高亮文本框
  edit.flash
  
  #打印结果
  puts "email订阅文本框存在"
  
end
解析:exist?()方法代表判断对象是否存在,这个从字面上就能看出来,若存在则输入邮箱地址,并高亮,最后打印结果。


那么每一句的解析之后,相信你应该已经对本段代码有一定了解了。那么我们现在就来执行一下。



如图,在需要执行的脚本区中点击右键选择Run As下的Ruby Application,即可执行。

但是执行后你会发现程序报了错

invalid multibyte char (US-ASCII)
解析:其实原因很简单,就是因为我们在脚本中存在中文,需要转码成utf-8

解决方案:首行加入

#coding: UTF-8


执行结果:


如图成功在文本框中输入了邮件地址



并且在console中打印了相关内容


那么这样一个简单的控制文本框的流程就完毕了,但是细心的朋友又会问一个问题了:究竟是如何知道这个文本框的name属性值为email的,其实很简单,一种最土的方式就是查看网页的源代码,如下图红色区域


但是你会发现如果对象很多,这样一个个找是不是特别累,这里作者提供给大家几个方案:

1.安装IE dev tools(微软官方有下载)

针对IE8以下浏览器,IE8开始自带,在浏览器中只需按下F12或者在菜单中打开


接着点击红色区域的箭头,当抓去订阅文本框时,工具会自动定位到对应的html位置


2. Chrome浏览器的Dev tools

只要你使用google的Chrome浏览器,只需按下快捷键Ctrl + Shift + i 即可激活工具

接着点击抓去按钮


原理其实一样,抓去了对象之后即可自动定位到html了。


总结:

本次课程的内容就到这里了,这次的东西相对比较多,讲了的文本框对象的识别以及对象识别属性的获取,那么下次我们会详细讲解包括文本框在内的所有常用对象控件类型的操作。


 Rss订阅IQuickTest关于如何订阅?

GoogleReader订阅地址: http://feeds.feedburner.com/iquicktest

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值