XPath无法使用text()定位元素
以下代码:XPath无法使用text()定位元素,text,xpath,Text,Xpath,以下代码: <label> <input class="class1" type="checkbox" checked="checked"/> First text </label> <label> <input class="class2" type="checkbox" checked="checked"/> Second text
<label>
<input class="class1" type="checkbox" checked="checked"/>
First text
</label>
<label>
<input class="class2" type="checkbox" checked="checked"/>
Second text
</label>
<label>
<input class="class3" type="checkbox" checked="checked"/>
Third text
</label>
及
但它不起作用
请告诉我
谢谢!:)
//标签[text()[包含(,'First text')]]
你的尝试 //label[contains(text(),'First text')] //标签[包含(text(),'First text')] 无法工作,因为中的
<label>[
]<input class="class1" type="checkbox" checked="checked"/>[
First text
]</label>
[
][
第一个文本
]
有两个文本节点:一个空节点只包含换行符,就在输入之前,另一个非空节点位于
之后。我在上面用方括号标出了它们的轮廓
- 像
contains(节点集,字符串)
这样的调用强制将第一个参数转换为contains
到string李>
- 将节点集转换为字符串将提供该集第一个节点的文本内容。(试试看,
string(label)
将为您提供带有一堆空白的第一个文本”
,无论有多少个标签。)
- 在您的例子中,这是空文本节点,因此
包含(text(),'First text')
将永远不会成功
因此,您必须单独测试文本节点,这是通过嵌套谓词完成的,如上图所示。Great!!谢谢!:)
//label[text()[contains(., 'First text')]]
//label[contains(text(),'First text')]
<label>[
]<input class="class1" type="checkbox" checked="checked"/>[
First text
]</label>