1

これは、Webページの非表示のテキストフィールドにアクセスしようとしたときに発生するエラーです。を使用してページをナビゲートしています

irb(main):184:0> browser.text_fields [1] .set "Hey man"

WIN32OLERuntimeError: (in OLE method 'focus': )
OLE error code:800A083E in htmlfile
Can't move focus to the control because it is invisible, not enabled, or of a type that does not accept the focus. HRESULT error code:0x80020009 Exception occurred. from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.0.0/lib/watir-classic/input_elements.rb:294:in 'method_missing' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-classic-3.0.0/lib/watir-classic/input_elements.rb:294:in 'set' from (irb):184 from C:/Ruby193/bin/irb:12:in 'main>'

前もって感謝します!!!

4

2 に答える 2

1

ブラウザを手動で使用する場合、そのテキスト フィールドをどのように操作しますか?

最初に、テキスト フィールドを表示するイベントをトリガーする必要があります。次に、試したコードを使用してテキスト フィールドに入力できます。

于 2012-06-15T13:03:39.360 に答える
0

トレースを見ると、編集不可または非表示のフィールドを更新しようとしているために発生します。Watir "Classic" (IE のみ) を使用している場合は、次のように記述できます。

require 'watir'
 .
 .
 .
browser.text_fields[1].value = "Hey man" 

ただし、どちらも機能しない他のブラウザー/ドライバーを使用している場合。ブラウザの非表示/編集不可のフィールドでは、javascript を使用する必要があります。

 browser.execute_script("var elem = document.getElementById('your_textfield_id'); elem.value = 'Hey man';")

面倒ですが、ユーザーが編集できないため意味があり、キーボードを使用して「設定」することはできません。

于 2014-06-18T17:37:34.897 に答える