Web Application Test in Ruby
它是Ruby的一个library,用于对Internet Explorer的操作,如click links, fill in form, press button…
它还可以对页面上的一些结果进行检查。
它几乎可以用于现存的,大多数网页(ASP.Net, JSP, PHP, Rails…)
它是的源码是开放的,我们可以看到它是如何实现的。
它自己并到带录制工具,但是有第三方工具可以使用,WatirMaker(WatirRecorder++), Watir WebRecorder, Webmetrics RIA Script Recorder。
Watir有哪些是做不到的?
它不能用于link,image的查检。
它不能用于falsh,Applets的测试。
它不能用于Firefox,Safari浏览器,一个替代方案是使用Firewatir或者Safariwatir。
它没有测试用例管理。
它是完全面向对象的一种脚本语言,无需编译,直接运行。
它是用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
(介绍什么是页面元素)
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/
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
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
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"
File_field
页面元素扩展
在watir-webdriver来袭的今天,我们不应该忘了watir给我们带来的快乐和成就感。