Набор FireWatir TextField: очень медленный - PullRequest
2 голосов
/ 15 февраля 2011

При вызове метода set text_field в ruby ​​текст вводится в браузере с очень низкой скоростью, примерно 1 символ / секунда.

Информация об окружающей среде:

  1. Ubuntu 10.10
  2. FireFox 3.6.13
  3. JSSh 0.9
  4. Ruby 1.9.2p136
  5. FireWatir 1.7.1

Добрый совет.Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 15 февраля 2011

Это известная ошибка: WTR-397

Обходной путь должен использовать watir-webdriver или использовать value= вместо set. Пример:

browser.text_field(how => what).value= "string"
0 голосов
/ 16 февраля 2011

решить проблему типа медленного ключа на 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 редактировать проц 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

теперь должно работать быстрее

...