FireWatir TextField设置:非常慢
在ruby中调用text_field的set
方法时,在浏览器中以非常慢的速率输入文本,大约为1个字符/秒。
环境信息:
- Ubuntu 10.10
- FireFox 3.6.13
- JSSh 0.9
- Ruby 1.9.2p136
- FireWatir 1.7.1
好心劝告。 提前致谢。
这是一个已知的错误: WTR-397
解决方法是使用watir-webdriver或使用value=
而不是set
。 例:
browser.text_field(how => what).value= "string"
解决firewatir上的慢键类型问题:
需要编辑文件text_field.rb
进入该文件夹
-
#>cd /usr/lib/ruby/gems/1.8/gems/firewatir-1.7.1/lib/firewatir/elements/
使其可写 -
#>chmod 777 text_field.rb
编辑procdef doKeyPress( value )
- 将#放在
@o.fireEvent("onKeyDown")
和@o.fireEvent("onKeyPress")
和@o.fireEvent("onKeyPress")
而是输入fire_key_events
def doKeyPress( value ) begin max = maxlength if (max > 0 && value.length > max) original_value = value value = original_value[0...max] element.log " Supplied string is #{suppliedValue.length} chars, which exceeds the max length (#{max}) of the field. Using value: #{value}" end rescue # probably a text area - so it doesnt have a max Length end for i in 0..value.length-1 #sleep element.typingspeed # typing speed c = value[i,1] #element.log " adding c.chr " + c #.chr.to_s @o.value = "#{(@o.value.to_s + c)}" #c.chr fire_key_events #add this #@o.fireEvent("onKeyDown") #@o.fireEvent("onKeyPress") #@o.fireEvent("onKeyUp") end
现在它应该更快