【发布时间】:2015-09-03 11:20:48
【问题描述】:
我在选择要在 Selenium 中读取的表时遇到问题。
我有一个表,其中“thead”中有两个“tr”元素,我需要找到一种方法来忽略其中的第一个。
代码如下:
<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 并记录每列的标题。在我正在努力解决的这种情况下,该表顶部有一个额外的“tr”这一事实阻碍了此过程。
这是当前使用元素的方式:
[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')]/../../..
在这里,我坚持使用 'tr' 元素,告诉它不要使用它然后退出,但这会再次选择它 - 即使这样也不会取消选择整个 'tr' 元素。我试图删除的“tr”元素是空白的,没有类或定义特征,这似乎没有帮助(对我来说)。
有没有办法选择整个表格,除了 'thead' 中的第一个 'tr' 元素作为一个元素?
【问题讨论】:
-
“选择整个表格”是什么意思?你以后想对这张桌子做什么?这对回答您的问题很重要,因此请更好地描述您真正想要实现的目标(以及您已经尝试过的 xpath 在哪里?)
-
使用 Selenium 我会要求它记录某个行和列的值。然后,这将查看我将提供给它的 Table 元素(希望在这种情况下使用我可以使用的 XPath),查看 thead 并记录每列的标题。在我正在努力解决的这种情况下,该表顶部有一个额外的“tr”这一事实阻碍了此过程。我会将这个和我尝试使用的 XPath 添加到帖子中