我正在编写一个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)
这些部门的HTML结构显示某些TD不包含' span'。不确定为什么这会阻止TD被选中,因为XPath以TD为目标。
答案 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]