gpt4 book ai didi

selenium - 文本包含而不是常规空格时的 XPath 匹配问题

转载 作者:行者123 更新时间:2023-12-03 21:59:59 25 4
gpt4 key购买 nike

对于常规 HTML

<b>WordA WordB WordC</b>

我会使用这个 XPath 来检索这个元素。
//b[text()='WordA WordB WordC']

但我有以下 HTML
<b>WordA&nbsp;WordB&nbsp;WordC</b>

当我尝试检索此实例中的元素时,第一个 XPath 不返回任何内容。
//b[text()='WordA\u00a0WordB\u00a0WordC']

以上一个作品。

但是,有没有更好的方法来处理这种情况,而不是使用 '\u00a0' 部分。
一些定义的函数来规范化空间。

等等:
//b[someFunction()='WordA WordB WordC']

最佳答案

请注意 \u00a0之所以有效,是因为您的 XPath 表达式嵌入在识别转义序列的某种宿主语言(例如 Java 或 Javascript)中 uNNNN - 这是由包含的宿主语言而不是 XPath 本身转换为 NBSP 字符。如果 XPath 嵌入在 XML 中(例如在 XSLT 或 XSD 中),您将使用 &#xa0;而不是 \u00a0 .

在 XPath 中没有处理 NBSP 的特殊方法,但您可以使用 translate() 将这些字符转换为常规空格:

//b[translate(text(), '\u00a0', ' ') = 'WordA WordB WordC']

另请注意,在此类表达式中,通常最好使用 .而不是 text()访问元素的字符串值。这对可能出现的变化更有弹性,例如斜体字之一,或由注释分隔的字词。

关于selenium - 文本包含而不是常规空格时的 XPath 匹配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60413361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com