質問

私は、ドロップダウンから任意の項目を選択するとすべての問題を抱えています。以下は、私たちのサイトからHTMLです。この

のようなHTMLのルックス
<div class="x-form-field-wrap x-trigger-wrap-focus" 
id="ext-gen157" style="width: 170px;"><input type="hidden" 
id="parentEntity" name="parentEntity" value=""><input type="text" 
id="cmbParentEntityId" autocomplete="off" size="24" class=" 
x-form-text x-form-field x-form-focus" style="width: 145px;">
<img class="x-form-trigger x-form-arrow-trigger" 
src="../ext/resources/images/default/s.gif" id="ext-gen158"></div>

私はこのようなワチールコードルックスを作成しましたのでます:

@browser.text_field(:id,"cmbParentEntityId").set("1")
値が1に設定されている1.Onceで始まるすべてのアカウントを検索し、

は、ドロップダウンのみ以下に1から始まるアカウント表示される

ドロップダウンからHTMLコードであります
 <div class="x-combo-list-inner" id="ext-gen336" style="width: 
248px; overflow: auto; height: 40px;"><div class="x-combo-list-item  
x-combo-selected">10_12_2010</div><div 
class="x-combo-list-item ">10_13_2010</div></div>

上記のコードに基づいて、私はワチールコードを作成しました。

@browser.div(:class => "x-combo-list-inner", :text => "10_12_2010").click

しかし、何が起こっていない、私はウェブを検索しましたが、どんな答えを見つけることができませんでした、私は本当に誰もが正しい方向にポイントに私を助けることができるかどうかが理解されよます。

おかげ

役に立ちましたか?

解決

あなたは何が起こっていないとはどういう意味ですか?私はあなたが提供するコードをしようとすると、私は期待UnknownObjectExceptionを取得します。

irb(main):003:0> b.div(:class => "x-combo-list-inner", :text => "10_12_2010").click
Watir::Exception::UnknownObjectException: Unable to locate element, using {:class=>"x-combo-list-inner", :text=>"10_12_2010"}
        from c:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/element.rb:57:in `assert_exists'
        from c:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/element.rb:315:in `enabled?'
        from c:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/element.rb:62:in `assert_enabled'
        from c:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/element.rb:259:in `click!'
        from c:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.6/lib/watir/element.rb:229:in `click'
        from (irb):3

あなたはしているが、「X-コンボリスト-内側」と「10_12_2010」のテキストのクラスを持つdiv要素を見つけようとしているためです。そのような要素はありません。これを参照してください。

irb(main):007:0> b.div(:class => "x-combo-list-inner").text
=> "10_12_2010\r\n10_13_2010"

「X-コンボリストインナー」のテキストは、すべての子要素のテキストを含んでいます。あなたはこのように、特定の子要素を検索できます:

irb(main):008:0> b.div(:class => "x-combo-list-inner").div(:text => "10_12_2010").html
=> "\r\n<DIV class=\"x-combo-list-item  &#13;&#10;x-combo-selected\">10_12_2010</DIV>"

または正規表現でます:

irb(main):009:0> b.div(:class => "x-combo-list-inner", :text => /10_12_2010/).text
=> "10_12_2010\r\n10_13_2010"

そして、それはクリックに来るとき、あなたはあなたがクリックする必要があり、正確などのdivの知っている必要があります - それは最初の1、または第二の一つです。また、何も起こらないならば、あなたは手動で、その後火災イベントをJavaScriptイベントが正確にこれらの要素にバインドされているものを見つけるとする必要があります:

irb(main):010:0> div = b.div(:class => "x-combo-list-inner").div(:text => "10_12_2010")
=> #<Watir::Div:0x5846088 located=false how={:text=>"10_12_2010"} what=nil>
irb(main):013:0> div.fire_event("onmousedown")
=> nil
irb(main):014:0> div.fire_event("onmouseup")
=> nil

他のヒント

私の推測では、いくつかのJavaScriptイベントを明示的に解雇されるべきであるということです。 JavaScriptイベントが解雇かを調べるためにどのようにを参照してください?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top