在Selenium 2.42.2和Firefox 29中,这个使用正则表达式的XPath表达式出了什么问题:
//button[matches(text(),'\s*ABC\s*')]
它给出以下错误消息:
[Exception... "The expression is not a legal expression." code: "12" nsresult: "0x805b0033 (SyntaxError)" location: "<unknown>"]
答案 0 :(得分:1)
matches()
是part of xpath 2.0。关于xpath支持selenium webdriver relies on the browser,在你的情况下是Firefox,据我所知,doesn't support xpath 2.0。
1.0中有很多功能可以帮助您克服这个问题。
例如,contains()
:
//button[contains(., 'ABC')]
如果文字位于字符串的开头或结尾,您可以应用starts-with()
或ends-with()
:
//button[starts-with(., 'ABC')]
//button[ends-with(., 'ABC')]
另见相关主题: