2017-04-26 10 views
-1

私はtheadとtbodyで動的に生成されたテーブルを持っています。ここに例があります:テキストで要素を検索し、xpathを取得し、すべてのtdが一意の要素であるようにリストに入れる - selenium webdriver junit

<tbody id="tableId" class="someclass1"> 
<tr id="rowId1" class="somesubclass"> 
<td id="item1" class="othersubclass"> 
    <span class="attr">john Doe</span> 
<td id="item2"> 
    <span class="attr">55</span> 
<td id="item3"> 
    <span class="attr">5 street</span> 
<td id="item2"> 
    <span class="attr">cat</span> 
<tr id="rowId2" class="somesubclass2"> 
<td id="item1" class="othersubclass2"> 
    <span class="attr">joe smith</span> 
<td id="item2"> 
    <span class="attr">60</span> 
<td id="item3"> 
    <span class="attr">2 street</span> 
<td id="item2"> 
    <span class="attr">dog</span> 

| joe doe | 55 | 5 street | cat | | joe foo | 60 | 1通り|犬|

名前をjoe doeとし、それをリストに入れるテキストで行を探したいとします。

Locatiorはこれを使用していますが、リストではありません。

@FindBy(xpath = "//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]") 
private List<WebElement> list; 

私はリストを得たが、すべては、このような第一の位置に入れているので、私は、反復処理することはできません。

リストの最初の要素は次のとおりです。ジョーDOE 55 5通りの猫ので、これは[です0]要素

すべてのtdがリストの一意の要素である場合、この行をどのようにリストとして見つけることができますか。

(、問題ではないなどの文字列に変換し、ちょうどロケータを反復処理。)

ありがとう!

+0

あなたはどの言語を使用していますか? Java/PHP/Python? – SomeDude

+0

申し訳ありませんが、私はそれを言及しませんでした。 Java +セレンのwebdriver。 – brobee

答えて

0

私は-1のために何がわかりません。とにかく、他の人のための答えはここにあります、これが助けてくれることを願います

googleのための良いプラグインがありますfirepath:SelAssist、私は私のxpathロケータをテストするために使用します。

問題は、tdが欠落していたことです。したがって、適切なロケータは

//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]/td 

です。それは私に要素のリストを与えます。

乾杯!

関連する問題