Java Xpath包含正则表达式模式

Java Xpath包含正则表达式模式,java,selenium-webdriver,xpath,groovy,Java,Selenium Webdriver,Xpath,Groovy,使用上述XPath,文本只包含数字,这是动态的。是否可以在上述Xpath中应用正则表达式模式 正则表达式模式:^[0-9] def xpath ="//span[contains(text(),'0')]" 我得到下面的错误 def myXpath = //span[contains(text(),'^[0-9]')]' testObject.addProperty('xpath',ConditionType.EQUALS,myXpath) def action = Web

使用上述XPath,文本只包含数字,这是动态的。是否可以在上述Xpath中应用正则表达式模式

正则表达式模式:
^[0-9]

def xpath ="//span[contains(text(),'0')]"
我得到下面的错误

def myXpath = //span[contains(text(),'^[0-9]')]'
testObject.addProperty('xpath',ConditionType.EQUALS,myXpath)
def action = WebUI.getText(testObject)

让我知道如何在XPath中应用正则表达式模式?

遗憾的是,Selenium只支持非常旧的XPath 1.0标准,它不支持正则表达式。XPath2.0附带了正则表达式支持,但Selenium尚未升级


有时可以使用
translate()
设计变通方法,例如,如果x不包含数字,则
translate(x,'0123456789','')=x
为真。(但我不确定您实际要测试的条件是什么,因为您没有说明确切的要求,您只向我们展示了不起作用的代码。)

如果您想选择带有数字的元素作为文本,可以使用变通方法

Web element with id: 'objectName' located by '//span[contains(text(),'^[0-9]')]' not found (Root cause: com.kms.katalon.core.exception.StepFailedException: com.kms.katalon.core.webui.exception.WebElementNotFoundException: Web element with id: 'objectName' located by '//span[contains(text(),'^[0-9]')]' not found

您是否意识到
包含(…,0)
将匹配字符串中任何位置的0,而正则表达式
^[0-9]
将要求第一个字符为数字?难道就没有这样的东西吗?(虽然我不是XPath专家)@Thomas yes包含数字的可能是(0145或0101或0200等)似乎有一个
matches()
函数,你试过了吗?@Thomas yes我试过matches(),但收到了相同的错误“def XPath=“//span[包含(文本(),匹配(,“[0-9]”)]”我假设你需要像
//span那样做[匹配(text(),“^[0-9]”)]”
//span[number(.) >= 0]