Xpath 在父元素范围内查找包含文本的元素

Xpath find an element containing text within the scope of a parent element

你好我有一个带有 ID 联系人的父元素,该元素有一个包含文本“hello”的子元素我想找到该子元素作为具有 ID 联系人的元素的子元素。这是因为“你好”出现在页面上的几个地方,但我只想要有联系人的“你好”。

我的意思的例子:

"//*[@id='contacts']/[contains(text(),'hello')]"

可惜这不行

这应该有效!最简单的实时尝试方法是在 Chrome 开发工具中。

//*[@id='latest_block']//*[text()[contains(.,'hello')]]

在此处了解更多 Xpath 的工作原理:

XPath contains(text(),'some string') doesn't work when used with node with more than one Text subnode

您缺少子元素的标记名称,因此只需将您的 XPath 更改为

"//*[@id='contacts']/*[contains(text(),'hello')]"

如果子元素不是 //*[@id='contacts'] 元素的直接子元素,您的 XPath 应该是

"//*[@id='contacts']//*[contains(text(),'hello')]"