单击表格行中的特定链接

时间:2014-06-24 13:16:06

标签: css selenium xpath selector

我在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

的行上的分配链接

到目前为止,我想出了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会返回&#34;没有匹配的节点&#34;来自Firebug。

但是,我想要一个CSS选择器。所以,我尝试了#table>tbody>tr:contains('Text1'),但Firebug返回&#34;无效的CSS选择器&#34;。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您应该找到前面有td兄弟标记td文字的Text1,然后获取a标记:

//table[@id="table"]//td[preceding-sibling::td="Text1"]/a[@id="assign"]

答案 1 :(得分:0)

或者,您可以找到'tr' 'td' text = 'Text1' 'tr',然后'td'查找//table[@id='table']//tr[td[.='Text1']]/td[.='Assign'] 文字'分配'

'contains'

关于css选择器,没有用于基于文本的搜索的纯css选择器。 {{1}}尚未标准化,因此可能不适用于您的情况。