1

以前set は、div の下のテキスト フィールドに値を挿入していました。

以下は、私が成功せずに使用したアプローチです。これが、要素を特定できた唯一の方法です。テキストフィールドを名前で識別しようとすると、認識されませんでした。

@browser.div(:evaluation, :id => "evaluation_form_attributes").text_field(:id => "evaluation_form_name")
@browser.set('Teacher Evaluation Form')

次のエラーが表示されました。

undefined method `set' for #<Watir::IE:0x4dd9348>

これはHTMLです:

div id="evaluation_form_attributes"

評価名:

input id="evaluation_form_name" type="text" size="50" name="evaluation_form[name]" maxlength="30"
4

3 に答える 3

3

これを試して:

browser.text_field(:id => "evaluation_form_name").set 'Teacher Evaluation Form'
于 2011-05-16T22:38:47.980 に答える
1

おそらくiframeが関係していますか?物がそこにあることがわかっていて、ID が確かで、watir がそれを見つけることができない場合、通常はページのその部分がフレーム内にあるためです。

フレームの内側にある要素を操作するには、フレームを指定してから要素を指定する必要があります

browser.frame(:how, what).element(:how, what).method など

詳細については、 http://wiki.openqa.org/display/WTR/Framesを参照してください。

于 2011-05-21T00:31:43.237 に答える
0

テキストフィールドの値を設定するには、テキストフィールドを見つけて設定するだけです。すでに知っている設定部分(set)なので、テキストフィールドを見つけるものをつなぎ合わせる必要があります。

「要素を見つけることができない」ためにZejikoの答えが機能しない場合、失敗しているのは設定ではなく、テキストフィールドを見つけています。Firebug(Firefoxの場合)またはある種のDOMツールキット([ツール]> [開発者ツール]またはIE8のF12)を使用して、テキストフィールドを検索し、その属性の種類を確認します。

IDが本当にであることを確認してください"evaluation_form_name"。これは大文字と小文字を区別し、先頭/末尾のスペースを区別します。次のことを試して、検索範囲を広げることができます。

@browser.text_field(:id => /evaluation/).set 'Teacher Evaluation Form'

これは、正規表現を使用してIDを識別します。:idだけでなく、さまざまなもので検索でき、複数使用できます。例えば:

@browser.text_field(:id => /eval/, :index => 2)

idに「eval」が含まれている2番目のテキストフィールドを検索します。

テキストフィールドを識別するために使用できるものは、https ://github.com/watir/watir/wiki/HTML-Elements-Supported-by-Watirにあります。

于 2011-05-17T08:23:38.123 に答える