watir( Web Application Testing in Ruby) 是一款基于ruby的自动化测试工具,使用watir写的语句在执行时,IE(如果使用IE的话)将被运行,并在框中输入内容,执行跳转,判断结果等,完全模拟人的操作行为。
假设已经安装好了ruby,则只需要执行:
gem update --system
gem install watir
两个命令即可。
特别说明:watir主要安装于windows下,因为个人电脑主要是windows操作系统,而且watir好多库针对IE,我试着在linux下安装,似乎不成功,应该是linux下只能安装支持Firfox版本的watir。
RubyGems(简称 gems)是一个用于对 Rails 组件进行打包的 Ruby 打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。也就是说,安装ruby扩展组件或是卸载都可以gem命令用这种方式进行。
在watir官网从watir-1.4.1之后已经找不到.exe方式的安装文件了,都采用了gem方式。
安装成功之后,直接运行网上的例子时,require "watir"会报装载库文件错误(no such file to load -- watir),这是因为安装时使用的时rubygems方式,因此需要在require之前,加上require 'rubygems'才能正确找到库文件。当然也可以通过设置环境变量:RUBYOPT = rubygems的方式,使得每次运行ruby程序时,都自动会加上 require 'rubygems'选项!
既然成功了,就写一点测试代码吧:
- require 'rubygems'
- require "watir"
- # set a variable
- test_site = "http://mail.163.com/"
- #open the IE browser
- ie = Watir::IE.new
- # print some comments
- puts "打开IE"
- puts " 第一步: 转到页面 " + test_site
- ie.goto test_site
- puts " 第二步: 输入 username 和 password."
- ie.text_field(:name, "username").set "mysmthlove2009"
- ie.text_field(:name, "password").set "xxxxxxxxxxxx"
- puts " 第三步: 模拟点击‘登录’按钮"
- ie.button(:type, "submit").click
watir的1.6.5版本,发现对中文的支持不好,获取属性值是中文的对象时获取失败
查找了下原因,是因为编码的问题导致的。
解决的办法如下:
修改C:/ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/win32ole.rb 文件中的下面代码
WIN32OLE.codepage = WIN32OLE::CP_UTF8
修改为
WIN32OLE.codepage = WIN32OLE::CP_ACP
codepage值有下面这些,不行的话可以逐个修改下,试下
WIN32OLE::CP_ACP, WIN32OLE::CP_OEMCP, WIN32OLE::CP_MACCP, WIN32OLE::CP_THREAD_ACP, WIN32OLE::CP_SYMBOL, WIN32OLE::CP_UTF7, WIN32OLE::CP_UTF8
watir文档官方网站:http://wtr.rubyforge.org/rdoc/1.6.5/
转自:http://blog.youkuaiyun.com/zhangren07/article/details/5318821
我再多说一句:有时安装好了,写好测试代码会打开一个空白的窗口,dos报出编码错误什么的,可能是因为没有将你要测试的地址加为信任站点的原因,加了之后就应该OK了