【发布时间】:2011-06-27 09:00:44
【问题描述】:
在 ruby 中调用 text_field 的 set 方法时,文本在浏览器中的输入速度非常慢,大约为 1 个字符/秒。
环境信息:
- Ubuntu 10.10
- 火狐 3.6.13
- JSSh 0.9
- Ruby 1.9.2p136
- FireWatir 1.7.1
请多多指教。提前致谢。
【问题讨论】:
-
听起来更像是 FireWatir 中的一个错误,您可能想把它带给开发人员。
在 ruby 中调用 text_field 的 set 方法时,文本在浏览器中的输入速度非常慢,大约为 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 编辑过程def 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
现在它应该工作得更快了
【讨论】: