Ruby 1.8.7、Watir-Webdriver 0.6.1、Arch Linux、Firefox 14 を使用しています。
このトピックで多くの回答と例を読みましたが、どれもうまくいきませんでした。大きなデータ (約 15 行のテキスト) をテキストエリアに貼り付けたい場合、非常に遅くなります。タイピング エミュレーションが必要ないため、利用可能な最大速度が必要なので、変数 "browser.speed = :zippy" を設定しようとしましたが、Watir-Webdriver では機能しないようで、エラー メッセージのみが表示されます。 「未定義のメソッド `speed=' for #」
次に、native_events を false に設定しようとしましたが、エラー メッセージが再び表示されます。「未定義のメソッド `native_events' for #」です。
これは私のコードスニペット全体です
require 'rubygems'
require 'watir-webdriver'
require 'xmlsimple'
default_profile = Selenium::WebDriver::Firefox::Profile.from_name "default"
default_profile.native_events = false
default_profile['javascript.enabled']=false
browser = Watir::Browser.new :ff, :profile => default_profile
browser.speed = :zippy
5 行目と 6 行目と 8 行目はすべてエラー メッセージをスローします。
最後に、この回答 (http://stackoverflow.com/questions/5000164/firewatir-textfield-set-very-slow) に記載されているように text_field.rb を編集しようとしましたが、.gem ファイルとtar.gz。解凍しましたが、関連する行が見つかりません:
# encoding: utf-8
module Watir
class TextField < Input
include UserEditable
attributes Watir::TextArea.typed_attributes
remove_method :type # we want Input#type here, which was overriden by TextArea's attributes
private
def locator_class
TextFieldLocator
end
def selector_string
selector = @selector.dup
selector[:type] = '(any text type)'
selector[:tag_name] = "input or textarea"
selector.inspect
end
end
module Container
def text_field(*args)
TextField.new(self, extract_selector(args).merge(:tag_name => "input"))
end
def text_fields(*args)
TextFieldCollection.new(self, extract_selector(args).merge(:tag_name => "input"))
end
end # Container
class TextFieldCollection < InputCollection
private
def locator_class
TextFieldLocator
end
def element_class
TextField
end
end # TextFieldCollection
end