test regulares regular reg probar pattern make learn how expressions expresiones examples checker regex xpath selenium-webdriver contains

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'')]