Watir入门

2011-10-19  王少平 

Watir是什么?

Web Application Test in Ruby

它是Ruby的一个library,用于对Internet Explorer的操作,如click links, fill in form, press button…

它还可以对页面上的一些结果进行检查。

它几乎可以用于现存的,大多数网页(ASP.Net, JSP, PHP, Rails…)

它是的源码是开放的,我们可以看到它是如何实现的。


Watir录制脚本的工具?

它自己并到带录制工具,但是有第三方工具可以使用,WatirMaker(WatirRecorder++), Watir WebRecorder, Webmetrics RIA Script Recorder。


Watir有哪些是做不到的?

它不能用于link,image的查检。

它不能用于falsh,Applets的测试。

它不能用于Firefox,Safari浏览器,一个替代方案是使用Firewatir或者Safariwatir。

它没有测试用例管理。


Ruby的简单介绍:

它是完全面向对象的一种脚本语言,无需编译,直接运行。

它是用C语言实现的,所以在有C编译器的地方,就可以使用。


Watir是如何工作的?

它是利用COM(Component Object Model组件对象模型)接口来实现对IE进行操作的,也有称ActiveX或OLE。这是由于IE是允许外部对其进行控制的,同样的office中的 word,excle,powerpoint和outlook都是如此的。

它可以充分获取html页面的信息。Dom tree

它为页面的每个对象提示了不同的方法。

require 'win32ole'

ie=WIN32OLE.new('InternetExplorer.Application')

ie.visible=true

ie.navigate('http://www.baidu.com')

ie.document.documentElement.innerHtml

(介绍什么是页面元素)


开始Watir脚本开发的准备:

1.  安装Ruby: http://rubyforge.org/frs/?group_id=167

2.  安装Watir: gem install watir

3.  安装htmltool: http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&DisplayLang=en


Watir学习的网站

1.      Watir homepage: http://wtr.rubyforge.org

2.      Watir User Guide: http://wiki.openqa.org/display/WTR/User+Guide

3.      Scripting 101 Tutorial: http://wtr.rubyforge.org/s101/doc/


Watir脚本IDE:

1.  ScITE 

2.  Notepad(windows)/Notepad++(推荐)

3.  Eclipse (using RDT Plugin):http://rubyeclipse.sourceforge.net/

4.  NetBeans: http://zh-cn.netbeans.org/

5.  Ruby In Steel(Free-$199)(Add-on to VS.Net): http://www.sapphiresteel.com

6.  Komodo IDE ($295) / Komodo Edit (Free): http://www.activestate.com

7.  RubyMain

8.  IRB(推荐)Interactive RuBy


开始我们的Watir脚本编写

require 'watir'

browser=Watir::IE.new

browser.goto("http://www.baidu.com")

browser.show_all_objects # 打印出,browser的所有方法

link = browser.link(:index, 1)

puts link

puts link.text

puts link.flash

比如:browser.button(:value, "Click Me").click

http://wiki.openqa.org/display/WTR/HTML+Elements+Supported+by+Watir

browser = Watir::IE.start("http://www.godaddy.com") 

browser = Watir::IE.new

browser.attach(:url, "http://www.google.com")

browser.close

browser.maximize


Watir学习的方法:

1.  常看Watir的API

2.  常运用

3.  常用irb

安装rdoc: gem install rdoc

Rdoc生成Watir的API文档。


Watir中部分页面元素的方法:

browser.link(:text, “GoDaddy”).click  

browser.link(:url, “http:www.godaddy.com”).click

browser.checkbox(:name, “checkme”).set 

browser.checkbox(:name, “checkme”).clear

browser.radio(:name, “clickme”).set 

browser.radio(:name, “clickme”).clear

browser.select_list(:name, “selectme”).select(“is fun”) 

browser.text_field(:name, “typeinme”).set(“Life is good”)

browser.button(:value, "Click Me").click

browser.text_field(:name, “typeinme”).clear


用Test::Unit做断言

Watir本身对弹出窗是无能为力的

Security Alerts

Choose File pop-ups

Save As

Login (username/password) panels

Alert boxes

Script prompt/textbox

Confirmation Boxes (ok/cancel)

这些dialog基本上都可以用autoIt去解决

AutoIt3:http://www.autoitscript.com/autoit3/

Download: http://www.autoitscript.com/autoit3/downloads.shtml

我们也无需安装它,只要将它的一个dll文件进行注册一下就可以了。

regsvr32 "*\ruby\lib\ruby\gems\1.8\gems\watir-1.6.2\lib\watir\AutoItX3.dll"


扩展和修改Watir方法

File_field

页面元素扩展

在watir-webdriver来袭的今天,我们不应该忘了watir给我们带来的快乐和成就感。

670°/6700 人阅读/0 条评论 发表评论

登录 后发表评论