regulares - XPath: el uso de la expresión regex en contiene la función
xpath visualizer (2)
Me gustaría hacer corresponder el texto siguiente con texto sometext12345_text
usando la expresión regular a continuación. Estoy usando esto en una de mis pruebas de selenio.
String expr = "//*[contains(@id, ''sometext[0-9]+_text'')]";
driver.findElement(By.xpath(expr));
Aunque parece que no funciona. ¿Alguien puede ayudar?
Si usa Selenium con Firefox, debería poder usar extensiones EXSLT y regexp:test()
¿Esto funciona para tí?
String expr = "//*[regexp:test(@id, ''sometext[0-9]+_text'')]";
driver.findElement(By.xpath(expr));
XPath 1.0 no maneja expresiones regulares de forma nativa, podrías probar algo como
//*[starts-with(@id, ''sometext'') and ends-with(@id, ''_text'')]
(como lo señala paul t, //*[boolean(number(substring-before(substring-after(@id, "sometext"), "_text")))]
podría usarse para realizar el mismo control de su regex original lo hace, si necesita verificar también los dígitos medios)
En XPath 2.0, prueba
//*[matches(@id, ''sometext/d+_text'')]