如何点击表记录by.cssselector,并在代码片段中显示部分文本

时间:2015-07-08 05:22:34

标签: css selenium xpath webdriver

我有一个带有标题任务详细信息和TaskTime的表。任务详细信息列包含一些文本(执行操作滚动编号 150 )并且单击执行java脚本操作并在同一窗口中显示新页面。

我想点击特定的表格单元格,例如第二个或第三个或任何单元格使用部分文本滚动号。通过使用findelementBy.cssselector。

下面是我的表格代码片段,它经常更新,不同的卷号。被添加到表

<tr class="Pointer" onmouseover="this.style.cursor='hand'" title="Perform" style="">
<td onclick="javascript:__doPostBack">Perform Operation roll no. 150</td>
<td onclick="javascript:__doPostBack">07 Jul 2015 05:26 PM</td>


<tr class="Pointer" onmouseover="this.style.cursor='hand'" title="Perform" style="">
<td onclick="javascript:__doPostBack">Perform Operation roll no. 161</td>
<td onclick="javascript:__doPostBack">07 Jul 2015 05:18 PM</td>


<tr class="Pointer" onmouseover="this.style.cursor='hand'" title="Perform" style="">
<td onclick="javascript:__doPostBack">Perform Operation roll no. 155</td>
<td onclick="javascript:__doPostBack">07 Jul 2015 05:13 PM</td>

请注意我的xpath无法正常工作,下表会经常更改。

2 个答案:

答案 0 :(得分:1)

请尝试以下xpath:

//td[contains(text(),'roll no. 161')]

这会将具有innerHTML / text的td元素定位为roll no. 161。您始终可以将161替换为您要查找的任何其他卷号。

或者

如果您要点击列表中滚动编号的第2个,第3个或任何其他td元素,您可以尝试以下操作:

  • (//td[contains(text(),'roll no.')])[2]

这会将DOM表示的时间顺序中的第二个 td元素定位为包含innerHTML / text roll no.

  • (//td[contains(text(),'roll no.')])[3]

这会将DOM表示的时间顺序中的第三 td元素定位为包含innerHTML / text roll no.

同样,您可以将最后一个[2]替换为任何其他数字,以在页面中找到相关元素。

答案 1 :(得分:0)

深入了解css后,我能够在selenium ide中找到元素

css=tr.Pointer > td:contains(roll nos)

上面的卷nos会经常更改,因此元素定位器也是如此。