Xpath如何找到包含包含unicode的文本的元素?

Xpath how find element containing text containing unicode?

提问人:Fauna Muirgen 提问时间:11/10/2023 更新时间:11/11/2023 访问量:54

问:

例如,我试图在国际网站上找到这样的东西:

Unicode: HTML格式:
"\u202aDansk\u202c\u200f"‪Dansk‬‏

这不起作用://*[contains(text(),'‪Dansk‬‏')]

selenium-webdriver xpath unicode

评论

1赞 LMC 11/10/2023
添加相关的 xml 示例。问题必须提供最小的可重复示例
0赞 Fauna Muirgen 11/10/2023
事实证明,这个问题只发生在浏览器开发者菜单中,而不使用selenium
0赞 pguardiario 11/11/2023
@Fauna您在浏览器开发菜单中做什么(您是说控制台吗?) - 您应该评估:$x("//*[contains(text(),'‪Dansk‬‏')]")

答:

1赞 Michael Kay 11/10/2023 #1

XPath 本身不提供任何转义非 ASCII 字符的方法。但是,编写 XPath 字符串的宿主语言经常如此。

当 XPath 表达式以 Java、C#、Python 或 Javascript 等编程语言编写为字符串文本时,通常可以使用反斜杠转义:

xpath.evaluate("contains(., '\u202aDansk\u202c\u200f')")

当 XPath 表达式以基于 XML 的语言(如 XSLT 或 XSD)编写为属性时,可以使用与号转义:

select="contains(., '‪Dansk‬‏')"

在任何其他上下文中,都需要检查主机语言环境的规范。

评论

0赞 LMC 11/10/2023
您可以将 Python 添加到支持反斜杠 Unicode 转义的语言列表中