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 回答