使用通配符选择表格单元格的XPath

时间:2018-04-19 21:51:46

标签: html xpath web

我正在编写一个XPath,它以HTML表格中的TD单元格为目标。它是以这样的方式编写的:我可以选择一行中的所有单元格,选择列中的所有单元格,或者通过为行或列提供通配符来选择单个单元格。

的XPath:

//*[@id='myGrid']/div/table/tbody/tr[{index0}]/td[{index1}]

例:

选择第一行:
index0 = 1 index1 = *(BROKEN)

选择第一列:
index0 = * index1 = 1(WORKS)

选择左上角的单元格
index0 = 1 index1 = 1(WORKS)

第一种情况是省略某些TD(黄色单元格表示XPath选择): The first case is omitting certain TDs:

这些部门的HTML结构显示某些TD不包含' span'。不确定为什么这会阻止TD被选中,因为XPath以TD为目标。

enter image description here

2 个答案:

答案 0 :(得分:0)

在XPath中,tr[*] 表示任何索引的tr;它表示带有任何子元素的tr

要选择tr元素而不考虑索引位置,请完全省略[*]谓词。

类似的推理适用于td[*]

答案 1 :(得分:-1)

我发现通过使用句点作为通配符,XPath会适当地选择所有分区。最终的xpath:

选择第一行中的所有单元格:
//*[@id='myGrid']/div/table/tbody/tr[1]/td[.]

选择第一列中的所有单元格:
//*[@id='myGrid']/div/table/tbody/tr[.]/td[1]

选择左上角的单元格
//*[@id='myGrid']/div/table/tbody/tr[1]/td[1]

XPath Syntax