2012-09-19 17 views
14

Deseo utilizar comodines en mis atributos. Por ejemplo, este es mi XPath normal:Uso de comodines XPath en atributos en Selenium WebDriver

//input[@id='activation:j_idt84:voId:1']` 

quiero reemplazar el número j_idt con un comodín porque el número es dinámico. Estoy buscando algo como esto:

//input[@id='activation:*:voId:1'] 

No sé cómo resolver ese problema. ¿Mi idea es posible?

Respuesta

24

Desafortunadamente no hay comodines de cadena en XPath. Sin embargo, puede usar múltiples y starts-with() para filtrar cosas como esta.

//input[starts-with(@id, 'activation:') and contains(@id, ':voId:1')] 

Además, esta respuesta podría ser útil también: selenium: Is it possible to use the regexp in selenium locators

+0

gracias, esta solución funciona ¡perfectamente! –

2

Usted puede comodines uso de cadenas utilizando la función matches que está disponible en XPath 2.0:

//input[matches(@id, 'activation:.*:voId:1')] 
+0

De esta manera no funciona en mi código. La solución de complex857 funciona. ¡Pero muchas gracias! –

+2

Selenium [delegate xpath al navegador subyacente] (http://code.google.com/p/selenium/issues/detail?id=3009) por lo que una vez que los navegadores los implementen, debería comenzar a funcionar. – complex857

Cuestiones relacionadas