【问题标题】:find xpath of label with non breaking space查找具有非中断空间的标签的 xpath
【发布时间】:2020-04-16 15:23:17
【问题描述】:

我正在尝试获取用于以下 html 代码的 xpath,但似乎没有任何效果。我很欣赏你的建议。我需要根据文本获取 xpath。

<label class="label" securityidpath="ACCOUNTS_FS.PART_ACCOUNT_HEADER_FS.PART_ACCOUNT_STATUS" title="Part Account Status">Part Account Status:&nbsp;
</label>

仅供参考,我尝试了以下变体 xpath

  1. //label[normalize-space(text())='Part Account Status:\u00a0']
  2. //label[normalize-space(text())='Part Account Status:\u000a']
  3. //label[normalize-space(text())='Part Account Status:\u202f']

以及所有选项按照以下 url https://en.wikipedia.org/wiki/Whitespace_character

谢谢你, 尤甘德

【问题讨论】:

    标签: xpath robotframework


    【解决方案1】:

    你可以使用

    /label[normalize-space(text())='Part Account Status:&#160;']
    

    或者使用十六进制变体&amp;#x00A0;,而不是十进制&amp;#160;
    另请注意,XPath 使用斜杠(而不是反斜杠)来定义路径,因此引用根节点 label 将由 /label 完成。 拼写错误 lable 而不是 label 是微不足道的。

    顺便说一句,您可以通过在 XPath 中使用 title 属性来避免实体问题:

    label[normalize-space(@title)='Part Account Status']
    

    【讨论】:

    • 感谢您的建议。我的问题中有一个错字(实际上我在测试时使用了 //label,但我匆忙将其发布为 \\lable)。我尝试使用您建议的 xpath。 //label[normalize-space(text())='Part Account Status: '] and //label[normalize-space(text())='Part Account Status: ']。跨度>
    • 目前,没有。第二种方法也行不通?
    【解决方案2】:

    您的元素名称错误,将 UTF 字符名称更改为 HexaDecimal 实体值:

    //label[normalize-space(text())='Part Account Status:&#x00a0;']
    

    XPATH 需要正斜杠

    【讨论】:

      猜你喜欢
      • 2012-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 2018-04-29
      相关资源
      最近更新 更多