如何查找显示为三个点的元素的XPath?现有查询返回空求解
XPath查找显示为三点的元素的解决方案
你尝试查找一个显示为三个点的元素的XPath,在DOM中展开该元素后能看到其文本内容为"Pending",但使用以下XPath未返回结果:
//button[contains(text(),'Pending')]
问题原因
text()仅匹配元素的直接文本节点,而"Pending"文本可能存在于该按钮的子元素中,并非直接属于按钮本身的文本节点,因此原XPath无法匹配。
正确解决方案
以下几种方式可以解决这个问题:
- 使用
.代替text(),匹配元素及其所有子元素的文本内容://button[contains(., 'Pending')] - 直接定位到包含文本的子元素,再获取其父按钮元素:
//button//*[contains(text(), 'Pending')]/parent::button - 如果知道子元素的具体标签(比如
span),可以更精准定位://button[.//span[contains(text(), 'Pending')]]
补充说明
从你提供的DOM截图来看,该元素在页面显示为三个省略号,展开后可见内部嵌套的元素包含"Pending"文本,因此上述方法能有效匹配目标按钮。
内容的提问来源于stack exchange,提问作者Denis S.
相关产品推荐
相关产品推荐

