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

use*_*763 9 xpath

在

<tr>
  <td class="f4 trimJustl"
      valign="middle"
      style="color:#ffffff;"
      artcolor="#ffffff">Create Network Container</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我想找到td文本等于创建网络容器的元素.我创建了XPath

//td[text()='Create Network Container']
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我也试过了

//td[contains(text(),'Create Network Container')]
Run Code Online (Sandbox Code Playgroud)

但这也不适合我.

hel*_*cha 23

它通过剪切和粘贴您发布的示例来工作.您的原始来源可能包含不匹配的制表符或其他空格字符.以下是一些替代方案:

1)规范化空间

//td[normalize-space(text()) = 'Create Network Container']
Run Code Online (Sandbox Code Playgroud)

2)比较使用字符串值td(这也将匹配Create <b>Network</b> Container)

//td[normalize-space(.) = 'Create Network Container']
Run Code Online (Sandbox Code Playgroud)

3)分别检查每个单词(忽略单词顺序)

//td[contains(text(), 'Create') and contains(text(), 'Network') and contains(text(), 'Container')]
Run Code Online (Sandbox Code Playgroud)

4)删除空格,制表符,换行符,换行符,回车符和比较结果:

//td[translate(text(), "  &#13;&#10;&#09;&#xa;", "") = 'CreateNetworkContainer']
Run Code Online (Sandbox Code Playgroud)


mar*_*eck 1

尝试这个:

//td[matches(text(), '\s*Create\s+Network\s+Container\s*')]
Run Code Online (Sandbox Code Playgroud)

老实说,这对我来说在我签入的几个评估者中都有效:

 //td[text() = 'Create Network Container']
Run Code Online (Sandbox Code Playgroud)

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

  • Firepath 本身不评估此 xpath。它给出无效的 xpath 错误 (2认同)