ruby1.5.3中如何让脚本执行时识别中文输入 [ 光影人像 东海陈光剑 的博客 ]
制作登陆脚本时,会碰到需输入中文用户名 ,此时脚本运行时会发现用户名输入不进去,那时因为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")
}
即可。
感谢林彦的帮忙,让我搞定这个问题。
我们从来只做一件事,分享.
让美在这个世界流转
让倍感无趣的 受伤的 彷徨的 孤独的 或是心情忧郁的 人生黯淡的人们
能有一次机会
去再一次发现这个世界的美
并把美传递给他人
---光影人像(Follow WeChat public number with interest)