使用XPATH搜索包含空格的文本

时间:2014-06-23 09:08:49

标签: xpath

<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')]

但这对我来说也不适合。

2 个答案:

答案 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(), "  &#13;&#10;&#09;&#xa;", "") = 'CreateNetworkContainer']

答案 1 :(得分:1)

尝试this

//td[matches(text(), '\s*Create\s+Network\s+Container\s*')]

说实话,我在几个评估员中为我工作,我检查了它:

 //td[text() = 'Create Network Container']

之前的尝试是匹配可能存在的所有潜在的类似空间的角色(也许它不仅仅是那里的一个空格,这就是为什么这个最简单的解决方案没有给你正确的结果。