如何为指定元素编写正确的XPath?已尝试多表达式但失效
解决XPath定位失效问题:正确表达式写法
你写的几个表达式的问题
//span[@text(),'Accounts')]:语法错误,text()是取节点文本的函数,不能加@(加@是调用属性),而且括号配对也错了//span[Contains(@text() ='Accounts']:contains需要小写,正确格式是contains(要匹配的内容, 关键词),同样不该用@text,括号也没配对完整//span[text()='Accounts'][1]:如果目标元素文本带有前后空格,或者页面存在干扰元素,这种完全匹配就会失效
可用的正确XPath表达式
针对显示文本为Accounts的span元素,试试以下写法:
- 精准完全匹配(确认文本无前后空格时使用):
//span[text()='Accounts'] - 自动忽略前后空格的匹配:
//span[normalize-space(text())='Accounts'] - 包含匹配(文本中除了
Accounts还有其他内容时使用)://span[contains(text(), 'Accounts')] - 定位第一个匹配的元素(页面存在多个相同文本的span时使用):
//span[normalize-space(text())='Accounts'][1]
额外提醒
- 如果目标元素嵌套在
iframe里,需要先切换到对应iframe才能完成定位 - 也可以直接用浏览器F12打开开发者工具,找到目标元素后右键选择「复制XPath」,直接获取现成的可用表达式
内容的提问来源于stack exchange,提问作者kajal pandey
相关产品推荐
相关产品推荐

