Pregunta

Quiero almacenar parte de una identificación y tirar el resto. Por ejemplo, tengo un elemento html con una identificación de 'element-12345'. Quiero tirar 'elemento-' y mantener '12345'. ¿Cómo puedo lograr esto?

Puedo capturar y hacer eco del valor, así:

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${!-myId-!} | |

Cuando ejecuto la prueba, obtengo algo como esto:

| storeAttribute | //pathToMyElement@id | myId |
| echo | ${myId} | element-12345 |

Estoy grabando con el Selenium IDE y copiando la prueba en Fitnesse, usando el dispositivo Selenium Bridge. El problema es que estoy usando una base de datos limpia cada vez que ejecuto la prueba, con identificadores aleatorios que necesito capturar y usar durante mi prueba.

¿Fue útil?

Solución

La solución es utilizar la función JavaScript replace () con storeEval :

| storeAttribute | //pathToMyElement@id                                   | elementID |
| storeEval      | '${elementID}'.replace("element-", "")                 | myID      |

Ahora si hago eco de myID obtengo solo la ID:

| echo | ${myID} | 12345 |

Otros consejos

/ element - (\ d +) / i

Esa es una expresión regular que capturaría los números después del guión.

Algo como esto podría funcionar:

| storeAttribute | fn:replace(//pathToMyElement@id,"^element-","") | myId |

Para hacer expresiones regulares se requiere XPath 2.0, no estoy seguro de qué versión implementa Selenium.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top