如何使用XPath精准选取指定h6标签对应的全部li节点
解决方案
你之前写的XPath会全局匹配所有符合层级结构的节点,核心问题有两个:一是XPath里的ui为笔误,实际对应页面中的ul标签;二是没有提前锁定唯一的目标h6节点,可通过h6的文本内容做筛选后再匹配对应的列表:
如果要匹配文本为Text1的h6对应的所有li下的span节点,使用如下XPath即可:
//h6[normalize-space(text()) = "Text1"]/following-sibling::ul[1]/li/span
各部分语法作用:
normalize-space(text()) = "Text1":先去除h6文本前后的空白字符后做完全匹配,避免页面标签内的空格、换行导致匹配失败;如果需要模糊匹配可以替换为contains(normalize-space(text()), "Text1")following-sibling::ul[1]:选中当前h6后面第一个同级的ul节点,确保只匹配和目标h6对应的列表,不会选中其他h6关联的内容- 后续的
/li/span对应你需要定位的目标节点
如果需要匹配其他h6对应的列表,只需要替换筛选条件里的文本内容即可。
内容的提问来源于stack exchange,提问作者Nandha
相关产品推荐
相关产品推荐

