rag*_*esh 48 regex xpath contains selenium-webdriver
我想sometext12345_text使用下面的正则表达式匹配以下文本.我在我的一个硒测试中使用它.
String expr = "//*[contains(@id, 'sometext[0-9]+_text')]";
driver.findElement(By.xpath(expr));
Run Code Online (Sandbox Code Playgroud)
它似乎不起作用.有人可以帮忙吗?
Rob*_*bin 60
XPath 1.0本身不处理正则表达式,你可以尝试类似的东西
//*[starts-with(@id, 'sometext') and ends-with(@id, '_text')]
Run Code Online (Sandbox Code Playgroud)
(正如paul t所指出的//*[boolean(number(substring-before(substring-after(@id, "sometext"), "_text")))],如果你需要检查中间数字,可以用来执行原始正则表达式的相同检查)
在XPath 2.0中,试试吧
//*[matches(@id, 'sometext\d+_text')]
Run Code Online (Sandbox Code Playgroud)
小智 6
在 Robins 的回答中,xpath 1.0 也不支持结尾与......只支持开始......所以如果你的条件不是很具体......你可以像这样使用对我有用
//*[starts-with(@id,'sometext') and contains(@name,'_text')]`\
Run Code Online (Sandbox Code Playgroud)
如果您在Firefox中使用Selenium,则应该能够使用EXSLT扩展名和regexp:test()
这对您有用吗?
String expr = "//*[regexp:test(@id, 'sometext[0-9]+_text')]";
driver.findElement(By.xpath(expr));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112982 次 |
| 最近记录: |