2016-08-10 34 views
-1

画像のためのコード自動化する必要があります:私はワチール-webdriverをして​​自動化する必要があるのスクリーンショットのように、私は2日付ピッカーを持って私は2日付ピッカーの日付ピッカー

image

を。

彼らは同じクラスを持っているので、私は2つのdatepickerを選択することができません。

私が書いたコードは次のとおりです。この貫通

("browser.img(:class => "ui-datepicker-trigger").click") 

私は1つの日付ピッカーをクリックすることができていますが、どのように私は2日付ピッカーを選択することができますか?

答えて

1

少なくとも、:indexロケータを使用して2番目の日付ピッカーを選択できます。 :indexロケータは、一致する要素のどのオカレンスを使用するかを指定します。たとえば、index: 0が最初の一致を選択します(デフォルトです)。 index: 1がピッカーであろう第二の日付を選択する等

、第二の一致を選択する:

browser.img(:class => "ui-datepicker-trigger", :index => 1).click 

:indexロケータの欠点は、他の同様の要素が追加されるときに予期せずに破壊することです。たとえば、指示日付の前に別の日付ピッカーを追加すると、上記のコードで間違った日付ピッカーが更新されます。より良いアプローチは、配送予定日に特有の日付ピッカーを見つけることです。第二日付ピッカーを探しているの代替は、配達期日と同じliに日付ピッカーを探すことである。このマークアップで

<ul> 
    <li> 
    Instruction Date: 
    <input type="text" id="instruction_date"> 
    <img class="ui-datepicker-trigger"> 
    </li> 
    <li> 
    Delivery Due Date: 
    <input type="text" id="delivery_due_date"> 
    <img class="ui-datepicker-trigger"> 
    </li> 
</ul> 

:よう

例えば、HTMLは次のようになりますフィールド。このアプローチを採用すると、今後の変更に対してより堅牢になる可能性があります。

browser.text_field(id: 'delivery_due_date').parent.img(class: 'ui-datepicker-trigger').click 
+0

help @ Justin Ko !!!ありがとうございます。 –