如何不依赖特定标识符,用XPath提取嵌套div中的Headline2?
提取"Headline2"的XPath方案
针对你提供的HTML结构,不用特定类名的情况下,有几种可行的XPath写法:
按直接子元素位置定位
目标div是id="EU-group-keep"容器下的第4个直接子div,用直接子元素选择器/而非后代选择器//,避免多层嵌套匹配错误://div[contains(@id, "EU-group-keep")]/div[4]按文本内容定位
如果你明确知道目标文本是"Headline2",可以直接通过文本匹配://div[contains(@id, "EU-group-keep")]//div[text()="Headline2"]若文本前后可能有空格,改用
contains匹配://div[contains(@id, "EU-group-keep")]//div[contains(text(), "Headline2")]按相邻元素关联定位
利用目标div在包含"Headline1"的元素之后的位置关系://div[contains(@id, "EU-group-keep")]//a[text()="[Headline1]"]/../following-sibling::div[1]
原表达式失败原因
你之前用的//div[contains(@id, "EU-group-keep")]//div//div//div//div是在找四层嵌套的div,但目标元素其实是EU-group-keep的直接子元素,不需要这么多层级,因此无法匹配到。
内容的提问来源于stack exchange,提问作者Zerers
相关产品推荐
相关产品推荐

