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'选项!
既然成功了,就写一点测试代码吧:
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/
纯英文的,是时候多看看纯英文文档了。呵呵。