如何通过行位置与表头类定位表格数据单元格(XPath实现)
表格单元格定位的正确XPath写法
已知表格行位置和表头<td>的class属性,要定位对应的数据单元格,推荐两种实用的XPath写法:
方法一:通过计数表头前置元素确定列位置
这种方法先算出目标表头在所在行的位置,再匹配数据行的对应列:
//tbody/tr[2]/td[count(//thead//td[@class="bar"]/preceding-sibling::td) + 1]
原理说明:count(//thead//td[@class="bar"]/preceding-sibling::td)会统计目标表头前面有多少个同级的<td>,加1之后就是它的位置序号,用这个序号就能精准找到数据行里的对应单元格。
方法二:直接匹配表头与数据列的位置序号
利用position()函数直接关联表头和数据列的位置:
//tbody/tr[2]/td[position() = (//thead//td[@class="bar"])[1]/position()]
注意:如果页面中存在多个class为bar的表头单元格,加上[1]可以指定匹配第一个,避免定位出错。
拿你提供的示例HTML测试,用上面任意一种写法,都能准确定位到<td>5</td>。
内容的提问来源于stack exchange,提问作者Lau
相关产品推荐
相关产品推荐

