2011-02-15 78 views
2

在ruby中調用text_field的set方法時,瀏覽器中的文本輸入速度非常慢,大約爲1個字符/秒。FireWatir TextField設置:非常慢

環境信息:

  1. 的Ubuntu 10.10
  2. 火狐3.6.13
  3. JSSh 0.9
  4. 紅寶石1.9.2p136
  5. FireWatir 1.7.1

請諮詢。提前致謝。

+0

聽起來更像是你可能要考慮到開發商FireWatir的錯誤。 – 2011-02-15 05:22:50

回答

3

這是一個已知的bug:WTR-397

解決方法是使用watir-webdriver或使用value=而不是set。例如:

browser.text_field(how => what).value= "string" 
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")

,而不是進入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 

現在它應該工作得更快