【发布时间】:2012-01-12 20:31:47
【问题描述】:
我正在使用 selenium 使用 chromedriver 测试我的 webapp,但是 selenium 似乎无法找到我想要的元素。
我查询的html是:
<table>
<thead><thead>
<tbody>
<tr>
<td></td>
<td>
<span class="class1">
<span>Test text</span>
</span>
<ul>
<li class="class2"><a href="#">Edit</a></li>
<li class="class2"><a href="#">Remove</a></li>
</ul>
</td>
</tr>
</tbody>
</table>
我正在尝试选择网络元素:
<a href="#">Edit</a>
我使用 CSS 选择器尝试了以下操作:
table > tbody > tr:first-child > td:nth-child(2) > ul > li:first-child > a
以及使用 XPath 进行相同类型的查询:
//table/tbody/tr/td/following-sibling::td[1]/ul/li/a
当我调试它并使用快速监视来动态修改查询时,两个查询都可以正常工作,直到我尝试选择 ul;例如:
table > tbody > tr:first-child > td:nth-child(2)
与
//table/tbody/tr/td/following-sibling::td[1]
两者都正确选择了包含 ul 的正确 td 的内容。当我试图让他们中的任何一个获得 ul 时,每个选择都变为空。
所以我有两个问题,为什么我不能使用 CSS 选择器或 XPath 选择 ul 元素,还有其他技术可以用来选择列表中带有文本“编辑”的第一个标签。
干杯
【问题讨论】:
标签: xpath selenium css-selectors