在
<tr>
<td class="f4 trimJustl"
valign="middle"
style="color:#ffffff;"
artcolor="#ffffff">Create Network Container</td>
</tr>
我想找到文本等于创建网络容器的td
元素。
我创建了XPath
//td[text()='Create Network Container']
但它没有用。我也试过
//td[contains(text(),'Create Network Container')]
但这对我来说也不适合。
答案 0 :(得分:21)
通过剪切和粘贴您发布的示例来工作。您的原始来源可能包含不匹配的标签或其他空白字符。以下是一些替代方案:
1)规范化空间
//td[normalize-space(text()) = 'Create Network Container']
2)使用td
的字符串值进行比较(这也将匹配Create <b>Network</b> Container
)
//td[normalize-space(.) = 'Create Network Container']
3)分别检查每个单词(忽略单词顺序)
//td[contains(text(), 'Create') and contains(text(), 'Network') and contains(text(), 'Container')]
4)删除空格,制表符,换行符,换行符,回车符并比较结果:
//td[translate(text(), " 	
", "") = 'CreateNetworkContainer']
答案 1 :(得分:1)
尝试this:
//td[matches(text(), '\s*Create\s+Network\s+Container\s*')]
说实话,我在几个评估员中为我工作,我检查了它:
//td[text() = 'Create Network Container']
之前的尝试是匹配可能存在的所有潜在的类似空间的角色(也许它不仅仅是那里的一个空格,这就是为什么这个最简单的解决方案没有给你正确的结果。