选择指定表中的所有标签

时间:2013-01-20 20:12:17

标签: xpath selenium

编辑:问题在于我的硒没有等待页面完全加载。语法很好。感谢大家的帮助。

我正在尝试选择指定类的表中的所有<tr>标记。我试图这样做,但这对我不起作用:

"/table[contains(@class, 'tbl output')]/tbody/tr"
"//table[@class='tbl output']/tbody/tr"

我做错了什么?

我正在搜索的表格:

<table class="tbl output" cellspacing="0">
<colgroup></colgroup>
<tfoot></tfoot>
<tbody>
   <tr class="strong"></tr><tr></tr><tr></tr><tr></tr><tr class="strong"></tr><tr></tr><tr></tr><tr></tr><tr></tr>
</tbody>
</table>

我正在使用Selenium:var rows = drv.FindElements(By.XPath("//table[@class='tbl output']/tbody/tr"));

哦,好吧,行只包含一个位置,我不知道它是什么,因为当我试图在它上面设置一个断点并检查它时,visual studio会崩溃。 : - /

1 个答案:

答案 0 :(得分:1)

我尝试了以下内容:

let $doc := <table class="tbl output" cellspacing="0">
<colgroup></colgroup>
<tfoot></tfoot>
<tbody>
   <tr class="strong"></tr><tr></tr><tr></tr><tr></tr><tr class="strong"></tr><tr></tr><tr></tr><tr></tr><tr></tr>
</tbody>
</table>

return $doc[@class='tbl output']//tr

所以我认为你应该使用:

.[@class='tbl output']//tr

或者您必须在表标记周围定义文档元素。我假设上面的代码是你的整个文档。至少以这种嵌入方式。因此,表标记被视为文档。