制作登陆脚本时,会碰到需输入中文用户名 ,此时脚本运行时会发现用户名输入不进去,那时因为ruby不支持中文,需要修改一些文件后才行。
      ruby1.5.2下是修改watir.rb这个文件;1.5.3中这个文件被拆分了,需要修改C:\ruby\lib\ruby\gems\1.8\gems\watir-1.5.3\watir\input_elements.rb 文件。修改步骤:
一、在class TextField中加入
def characters_in(value)
   index = 0
   while index < value.length
      len = value[index] > 128 ? 2 : 1
      yield value[index, len]
      index += len
   end
end
 二、在def doKeyPress(value) 方法中将
for i in 0 .. value.length - 1
        sleep @container.typingspeed
        c = value[i,1]
        @o.value = @o.value.to_s + c   
        @o.fireEvent(">@o.fireEvent("onKeyDown")
        @o.fireEvent(">@o.fireEvent("onKeyPress")
        @o.fireEvent(">@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")
      }
即可。
感谢林彦的帮忙,让我搞定这个问题。