normalize-space()的目的是什么?

时间:2019-04-25 16:50:28

标签: java selenium xpath

我不太了解normalize-space()的目的。 我认为这非常有用。实际上,我在进行测试时总是使用它,但是我不确定主要目的。

例如,在这两种情况下,有什么区别? 使用它的好处是什么?

示例1

WebElement seleccionLabelCabecera 
  = findBy(xpath("(//div[contains(normalize-space(@class), 
                                  'windowViewMode-maximized active')"]

示例2

WebElement seleccionLabelCabecera 
  = findBy(xpath("(//div[@class, 'windowViewMode-maximized active')"]

2 个答案:

答案 0 :(得分:2)

normalize-space()函数简化了针对空白变化不明显的字符串的测试规范

在您的示例中,请考虑两个类值之前,之间或之后的额外空格不应影响是否找到目标{% for instance,value in w3.items %} Room name : {{ instance }} <br /> Allotted students : {% for v in value %} {{ v }} {% endfor %} {% endfor %} 。通过{strong> 删除前导和尾随空格并将内部空格合并为单个空格div简化了空格变化无关紧要的测试。

答案 1 :(得分:2)

normalize-space xpath函数将删除开头和结尾的空白。

[源msdn] 通过去除前导和尾随空白并将空白字符序列替换为单个空格来对空白进行归一化。如果省略该参数,则将标准化上下文节点的字符串值并返回。

示例:

<text>
    This is a
  test, with a   lot    of 
    irregular  spacing and
    waiting to be   normalizaed.


</text>

结果没有归一化空间

  

     

这是一个

     

测试,有很多

     

不规则间距和

     

等待标准化。

     

具有规范化空间的结果

  

“这是一个测试,有很多不规则的间距,正等待标准化。”

您可以在下面的链接中获得更详细的说明

https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/ms256063(v=vs.100)