2008-12-31 15 views
8

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

puedo capturar y eco del valor, como este:

| storeAttribute | //[email protected] | myId | 
| echo | ${!-myId-!} | |

Cuando ejecuto la prueba, me sale algo como esto:

| storeAttribute | //[email protected] | myId | 
| echo | ${myId} | element-12345 |

estoy grabando con el IDE selenio, y copiando la prueba en Fitnesse, usando el accesorio Selenium Bridge. El problema es que estoy usando una base de datos limpia cada vez que ejecuto la prueba, con identificaciones aleatorias que necesito capturar y usar a lo largo de mi prueba.

+0

+1 porque el selenio es una excelente herramienta! –

Respuesta

11

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

| storeAttribute | //[email protected]         | elementID | 
| storeEval  | '${elementID}'.replace("element-", "")     | myID  | 

Ahora bien, si me hago eco de myID me sale sólo el ID:

| echo | ${myID} | 12345 | 
2

/elemento - (\ d +)/i

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

+0

¡Gracias! Ahora, ¿dónde iría eso en mi código? | storeAttribute | // pathToMyElement @ id | myId | – Andrew

+0

Lo siento mucho, pero nunca antes había usado Selenium. Publiqué la expresión regular con la esperanza de que alguien que la había usado antes pudiera ayudarla a usarla. Investigaré un poco y veré si puedo dar una respuesta :) – Salty

2

Algo como esto fuerza de trabajo:

| storeAttribute | fn:replace(//[email protected],"^element-","") | myId | 

Para ello requiere de expresiones regulares XPath 2.0 - no estoy seguro que implementa la versión de selenio.

Cuestiones relacionadas