如何使用XPath定位包含特殊字符<的<a>网页元素?
解决XPath定位包含空格和
<的<a>标签问题 你的<a>标签实际文本内容是<(前后带有空格),之前的XPath表达式未正确处理文本的完整内容或匹配逻辑,以下是可行的定位方式:
可行的XPath表达式
精准匹配(忽略首尾空格):
//a[normalize-space(.)='<']这里的
.代表当前节点的完整字符串值,normalize-space()会自动去除首尾空格并合并中间多余空格,完美匹配文本为<的<a>标签。模糊匹配(只要包含
<即可)://a[contains(., '<')]用
.获取节点的所有文本内容拼接结果,比text()更可靠,避免因文本节点列表导致的匹配失败。
之前表达式失败的原因
//a[text()='<']:text()返回原始文本<,和纯<完全不相等,无法匹配。//a[normalize-space(text())='<']:部分XPath引擎中text()会返回文本节点列表,normalize-space()处理列表的逻辑不符合预期,换成.即可解决。//a[contains(text(), '<')]:同样因text()可能返回节点列表,导致contains()无法正确识别包含关系。
内容的提问来源于stack exchange,提问作者zac
相关产品推荐
相关产品推荐

