在selenium IDE中使用大写和小写xpath函数

在selenium IDE中使用大写和小写xpath函数,xpath,selenium-ide,uppercase,lowercase,Xpath,Selenium Ide,Uppercase,Lowercase,我试图使用xpath函数小写或大写获取xpath查询,但它们在selenium中似乎不起作用(在selenium中,我在应用xpath之前先测试xpath) 不起作用的示例: //*[.=upper-case('some text')] 只要不使用大写和小写,我就可以在复杂路径中定位所需的节点,甚至可以使用聚合函数 以前有人遇到过这种情况吗?这有意义吗 谢谢。大写()和小写()是XPath 2.0函数。您的平台可能只支持XPath 1.0 尝试: 这是XPath1.0实现的方法。不幸的是,这需

我试图使用xpath函数
小写
大写
获取xpath查询,但它们在selenium中似乎不起作用(在selenium中,我在应用xpath之前先测试xpath)

不起作用的示例:

//*[.=upper-case('some text')]
只要不使用大写和小写,我就可以在复杂路径中定位所需的节点,甚至可以使用聚合函数

以前有人遇到过这种情况吗?这有意义吗

谢谢。

大写()
小写()
是XPath 2.0函数。您的平台可能只支持XPath 1.0

尝试:

这是XPath1.0实现的方法。不幸的是,这需要了解文本使用的字母表。对于普通英语,上述方法可能有效,但如果您希望使用重音字符,请确保将它们添加到列表中


在大多数环境中,您使用的是某种宿主语言以外的XPath,并且可以使用宿主语言的功能,通过外部向
translate()
提供搜索字符串的大小写变体来克服XPath 1.0的限制

如Python示例所示:

search='Some Text'
lc=search.lower()
uc=search.upper()
xpath=f”//p[包含(翻译(,{lc}',{uc}'),{uc}')”
这将生成以下XPath表达式:

//p[包含(翻译(,'some text','some text'),'some text')]

它不区分大小写搜索,适用于任意搜索文本。

如果您在xslt中的多个位置需要大写,您可以为小写和大写定义变量,然后在translate函数中随处使用它们。它应该使您的xslt更干净


例如

的确,谢谢!不幸的是,这根本不是“干净的”…:((这将使我们在GenericFixture for Fitnesse中已经很复杂的一些DSL定义变得更加复杂)。有人知道selenium RC或Firefox是什么时候(我不知道是哪一个负责)是否将采用XPath 2.0?对不起,但我不知道。我知道它不干净,但它是XPath 1.0所能提供的最好的。@亚里士多德:是的,这似乎不清楚,但背后有它的原因。XML是Unicode,而不是ASCII/英语。所以,对于大写,它需要知道排序规则。排序规则知识被添加到XPath 2.0中。它是g注意,对于处理XSL文档的人员,使用CSS的文本属性可以解决转换问题,如大写。要获取更多信息:
translate('some text','abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')