2017-01-23 18 views
0

テキストを入力フィールドに入力しようとしましたが、正常に動作しません。私はこのような2つの入力を持っています:同じクラスのWatirでテキストを入力してください

<div class"outerParentClass"> 
    <div class="classLabel">From</div> 
     <div class="classA classB classD"> 
      <div class="classE"> 
       <div class="classText"> TEXT HERE </div> 
       <input class="classInputA classInoutB" type="text"> 
      </div> 
     </div> 
    </div> 
    <div class="classLabel">To</div> 
     <div class="classA classB classD"> 
      <div class="classE"> 
       <div class="classText"> DIFFERENT TEXT HERE </div> 
       <input class="classInputA classInoutB" type="text"> 
      </div> 
     </div> 
    </div> 
</div> 

両方の入力は、上記と全く同じ形式です。 IDはなく、どちらも同じクラスです。私はこれらにテキストを入力するか、またはそれらを正しく見つけることに苦労しています。

私はこれを行うとき:

browser.text_field(:class => "classInputA").size 

を私はこれを行うとそれが20

を返します。

browser.text_field(:class => "classInputA") 

それが返されます。

#<Watir::TextField:0x..fbccafb7ed2e9b85e located=false selector={:class=>"classInputA", :tag_name=>"input"}> 

ない見つける方法がわからをこれらのinpのいずれかuts。助言がありますか?

答えて

1

フィールドに隣接するテキストは、フィールドのラベルとコンテキストを提供します。一意である可能性が高いため、これを使用して要素を識別できます。

これを行うには、ラベルテキストを含むdivがあります。次に、テキストフィールドを含むdivの隣にナビゲートします。

browser.div(text: 'From', class: 'classLabel') # label of interest 
    .element(xpath: './following-sibling::div[1]') # adjacent div containing text field 
    .text_field # the text field 

ワチールの次のリリースでは、.element(xpath: './following-sibling::div[1]')はちょうど.following-siblingで交換可能になることに注意してください。

+0

ここでのテキストは、入力ボックスに表示されるテキストです。したがって、テキストが毎回異なる可能性があるので、検索するのは難しいです。 – user081608

+0

'classText'が' contenteditable'を有効にしていて、実際のテキストフィールドが見えないのでしょうか?それはラベルではないので、ユーザーはそのフィールドが何であるかをどのように知っていますか?人として、あなたはこれらのフィールドのどれと対話したいかを見ることができます。少なくとも、Watirには同じルールを使用できるはずです。 –

+0

HTMLを編集して見た目を表現しました。私はセグメントの親クラスを見つけることができますが、テキストフィールドに到達することはできません。 – user081608

関連する問題