鉴于此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每次都会更改。
答案 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+"]/..."))
}