2

この HTML を考えると:

<tr class="even" id="district_22">
    <td class="name">Virginia Beach City Public Schools</td>
    <td class=""><a href="/admin/districts/22" class="member_link delete_link" data-confirm="Sure?" data-method="delete" rel="nofollow">Delete</a></td>
</tr>
<tr class="even" id="district_23">
    <td class="name">Virginia City City Public Schools</td>
    <td class=""><a href="/admin/districts/23" class="member_link delete_link" data-confirm="Sure?" data-method="delete" rel="nofollow">Delete</a></td>
</tr>
<tr class="even" id="district_24">
    <td class="name">Virginia Town City Public Schools</td>
    <td class=""><a href="/admin/districts/24" class="member_link delete_link" data-confirm="Sure?" data-method="delete" rel="nofollow">Delete</a></td>
</tr>

Selenium と xpath を使用しようとしています。「Virginia Beach City Public Sc​​hools」に属する「削除」リンクを選択しようとすると問題が発生します。私はxpathが初めてです。

やっています:

xpath=(//td[text()='Beach')]/@class.contains('delete'))

しかし、それは要素を見つけていません。

注: これらは繰り返しテストであり、ID は毎回変更されるため、ID を使用できません。

4

3 に答える 3

4

これを試して:

//td[contains(text(),'Beach')]/../td/a[contains(@class,'delete_link')]
于 2012-12-03T20:31:17.157 に答える
1

tr[@id="district_22"]//a[contains(@class,'delete_link')] はるかに良いでしょう。
文字を見てもダメです。結局、他の方法でローカライズおよび編集される可能性があります。ただし、ID は変更されず、複製されないように注意してください。

于 2012-12-04T14:57:02.700 に答える
-1

自動スクリプトをループで実行したいと思います。その場合は、以下のコードを試すことができます。

 for(i=1,dist=22; i<-count; i++,dist++)
 {
    ....
    ....
    driver..findElement(By.xpath("//*[@id=District_"+dist+"]/..."))
 }
于 2012-12-06T14:57:45.450 に答える