2017-01-17 6 views
2

人間が読めるID /リファレンスがないフォームフィールドからの値の入力/読み取りに最適な方法を探しています。Seleniumは不正なIDを持つフォームフィールドにアクセスします

基本的なアウトラインは

<div id="form-2143"> 
 
    <div id="numberfield-1234"> 
 
    <label id="numberfield-1234-label"> 
 
     <span class="x-form-label">Field Name 1</span> 
 
    </label> 
 
    <div id="numberfield-1234-body"> 
 
     <div id="numberfield-1234-wrap"> 
 
     <input id="numberfield-1234-input" class="form-field" componentid="numberfield-1234"> 
 
     </div> 
 
    </div> 
 
    </div> 
 
    ... 
 
</div>

のように見える「基本は」私が仕事をしなければならない存在関わる複数のクラスDEFSと属性がありますが、上記です。

このフォームにはいくつかのエントリがあり、それに似たフォームがありますので、ラベル名を検索して同じコンテナ内の入力フィールドにアクセスする方法を探しています。

私はサイトの管理が不十分で、サイトのHTML構造を編集できません。つまり、IDに分かりやすい名前を付けることはできませんが、貧しい名前を参照することは避けたいと考えています。 Robot Framework &セレンがこれらの要素を参照する方法を教えてください。上記の例のためのXPath

//label[span[text()="Field Name 1"]]/following-sibling::div//input 

作品を使用して、コメント

でアンダーソンの答えを強調

+6

チェック 'XPath'です:' //ラベル[スパン[テキスト()= "フィールド名1"]]/following- sibling :: div // input' – Andersson

+2

また、タイプミスも探してください。あなたは "ラベル"の代わりに "lable"を持っています。 – Helio

+0

元気いっぱいの男、@アンダーソン。 –

答えて

1

近くの要素を参照する方法の質問に答える重要な部分は

/following-sibling 
関連する問題