我在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;。
有什么建议吗?
答案 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}}尚未标准化,因此可能不适用于您的情况。