FireWatir TextField设置:非常慢

时间:2011-02-15 05:21:46

标签: ruby watir firewatir

在ruby中调用text_field的set方法时,浏览器中的文本输入速度很慢,大约为1个字符/秒。

环境信息:

  1. Ubuntu 10.10
  2. FireFox 3.6.13
  3. JSSh 0.9
  4. Ruby 1.9.2p136
  5. FireWatir 1.7.1
  6. 请咨询。提前谢谢。

2 个答案:

答案 0 :(得分:3)

这是一个众所周知的错误:WTR-397

解决方法是使用watir-webdriver或使用value=代替set。例如:

browser.text_field(how => what).value= "string"

答案 1 :(得分:0)

解决firewatir上的慢键类型问题:

需要修改文件text_field.rb 进入文件夹

  1. #>cd /usr/lib/ruby/gems/1.8/gems/firewatir-1.7.1/lib/firewatir/elements/让它可写
  2. #>chmod 777 text_field.rb编辑proc def doKeyPress( value )
  3. 将#放在@o.fireEvent("onKeyDown")@o.fireEvent("onKeyPress")以及@o.fireEvent("onKeyPress")
  4. 前面

    而是输入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
    

    现在它应该更快地运作