Watir支持中文环境的修改

这几天开始针对Watir进行WEB自动化的调研.在切换支持中文,花费了竟半天时间,实在郁闷.

在网上查找了别人曾经进行支持中文的修改,由于我安装的为Watir 1.5.2,存在着些许不同,讲述一下大致的方法:
  1.打开watir.rb
  2.在class TextField中加入一个新的method:
    def characters_in(value)
        index = 0
        while index < value.length
         len = value[index] > 128 ? 2 : 1
         yield value[index, len]
         index += len
        end
    end

3.更改class TextField的doKeyPress( value )方法部分代码,将下面代码
-------------------------------------------
    for i in 0 .. value.length-1
        sleep @container.typingspeed
        c = value[i,1]
        @container.log " adding c.chr " + c  
        @o.value = @o.value.to_s + c   
        @o.fireEvent("onKeyDown")
        @o.fireEvent("onKeyPress")
        @o.fireEvent("onKeyUp")
      end

替换为如下代码
      characters_in(value) {|c|
        sleep @container.typingspeed
        @o.value = @o.value.to_s + c
        @o.fireEvent("onKeyDown")
        @o.fireEvent("onKeyPress")
        @o.fireEvent("onKeyUp")
       }

4.用原googleserach.rb,将ie.text_field(:name, "q").set("中文"),验证成功.
 
注意和网上大部分讲的方法不同的点在于:
  a)   1.5.2开始firevent已经细化为:
      @o.fireEvent("onKeyDown")
        @o.fireEvent("onKeyPress")
        @o.fireEvent("onKeyUp")
      代码中要做相应修改
    原先没留意~~~

 b) 发现网上有相当的方法
 sleep @container.typingspeed
写成sleep @ieController.typingspeed
估计就是抄的是一个出处的~

由于刚装Watir,还不清楚调试环境,一直出错却没有看清,太是相当faint

posted @ 2007-10-18 17:40  slaughter  阅读(1793)  评论(2编辑  收藏  举报