【发布时间】:2014-06-24 13:16:06
【问题描述】:
我正在 Firefox 中使用 Selenium Webdriver 进行测试,理想情况下也在 IE8 中进行测试。
这是我的 html 结构:
<table id="table">
<tbody>
<tr>
<td>Text1</td>
<td><a id="assign" href="/assign/1>Assign</a></td>
</tr>
<tr>
<td>Text2</td>
<td><a id="assign" href="/assign/2>Assign</a></td>
</tr>
<tr>
<td>Text3</td>
<td><a id="assign" href="/assign/3">Assign</a></td>
</tr>
</tbody>
</table>
基本上我需要做的是:
点击包含Text1的行上的assign链接
到目前为止,我想出了选择所有分配链接的 XPATH://*[@id='table']//tr/td//following-sibling::td//following-sibling::td//following-sibling::td//a。将其更改为 //*[@id='table']//tr/td[text='Text1']//following-sibling::td//following-sibling::td//following-sibling::td//a 会从 Firebug 中返回“无匹配节点”。
但是,我想要一个 CSS 选择器。所以,我尝试了#table>tbody>tr:contains('Text1'),但 Firebug 返回“无效的 CSS 选择器”。
有什么建议吗?
【问题讨论】:
-
也许您可以使用属性选择器,其中 href 是属性:[href="/assign/1"]
-
@Qaz 如果我不需要检查文本,我可以简单地执行 #assign.click 或类似的操作,但我需要知道先点击哪个链接。
标签: css selenium xpath selector