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')]"
你好我有一个带有 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')]"