我在选择要在Selenium中阅读的表时遇到问题 我有一张桌子,里面有两个' tr'在' thead'里面的元素,我需要找到一种方法来忽略其中的第一个 这是代码:
<table class="noselect">
<thead>
<tr>
<th> </th>
<th class="number IOL">Interest Rates</th>
<th class="number IO">
</tr>
<tr>
<th>Description</th>
<th class="number">Value</th>
<th class="number">Percentage</th>
</tr>
</thead>
<tbody>
<tr>
<tr class="">
<tr class="">
<tr class="">
<tr>
<tr>
</tbody>
</table>
使用Selenium我会要求它记录某个行和列的值。然后,我将查看我将给它的Table元素(希望使用XPath,我可以在这种情况下工作),查看thead并记录每列的标题。在这种情况下,我正在努力,事实上还有一个额外的&#39; tr&#39;在这个表的顶部阻碍了这个过程。
这是元素当前的使用方式:
[TableAlias("Detailed table")]
protected virtual IWebElement DetailedTable()
{
return Driver.FindElement(By.XPath("//table[@class='noselect']"));
}
我已经尝试了许多不同的方法,但是我所要做的就是:
//table[@class='noselect movements']/thead/tr/th[not(text()='Interest Rates')]/../../..
我在这里坚持要去&#39; tr&#39;元素,告诉它不要使用它然后退出,但再次选择它 - 即使这并没有取消选择整个&#39; tr&#39;元件。它似乎没有帮助(对我来说)&#39; tr&#39;我尝试删除的元素是空白的,没有类或定义功能。
有没有办法选择整个桌子,除了第一个&#39; tr&#39;元素&#39; thead&#39;作为一个元素?
答案 0 :(得分:1)
组合两个xpathes。第一个xpath带有没有第一个tr和第二个tbody的thead
//table/thead/tr[not(position()=1)] | //table/tbody
答案 1 :(得分:0)
在处理THEAD
标记的函数中,获取TR
的集合并以[1]开始(跳过[0])并处理其余部分。