xpath - 如何查找信息

时间:2012-12-03 20:29:17

标签: xpath selenium webdriver automated-tests

鉴于此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。 我在尝试选择属于'弗吉尼亚海滩城市公立学校'的'删除'链接时遇到问题。 我是xpath的新手。

我在尝试:

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

但它找不到元素。

注意:我不能使用ID,因为这些是重复测试,ID每次都会更改。

3 个答案:

答案 0 :(得分:4)

试试这个:

//td[contains(text(),'Beach')]/../td/a[contains(@class,'delete_link')]

答案 1 :(得分:1)

tr[@id="district_22"]//a[contains(@class,'delete_link')]会好很多 看文本不好。毕竟它可能会以其他方式进行本地化和编辑。然而,ID是不变的,不会重复。

答案 2 :(得分:-1)

我认为您想在循环中执行自动脚本,如果是这种情况,那么您可以尝试以下代码:

 for(i=1,dist=22; i<-count; i++,dist++)
 {
    ....
    ....
    driver..findElement(By.xpath("//*[@id=District_"+dist+"]/..."))
 }