Pregunta

Estoy intentando capturar el ID de un elemento que se generará aleatoriamente. Puedo capturar con éxito el valor de mi ID de elemento como este ...

| storeAttribute | //div[1]@id | variableName |

Ahora mi variable será algo así como ...

divElement-12345

Quiero eliminar 'divElement-' para que la variable que me queda sea '12345' para que pueda usarlo más adelante para seleccionar el elemento 'form-12345' asociado con él ... algo como esto:

| type | //tr[@id='form-${variableName}']/td/form/fieldset/p[1]/input | Type this |

¿Cómo podría lograr esto?

¿Fue útil?

Solución

Tienes dos opciones en Selenium, XPath y CSS Selector. He leído que el Selector de CSS es mejor para hacer pruebas tanto en FireFox como en IE. Usando la última versión de Selenium IDE (5/5/2009) He tenido éxito con el uso de storeEval que evalúa las expresiones de Javascript, brindándole acceso a las funciones de cadena de javascript.

XPath:

storeAttribute | //div[1]@id                                            | divID
storeEval      | '${divID}'.replace("divElement-", "")                  | number
type           | //tr[@id='form-${number}']/td/form/fieldset/p[1]/input | Type this

Selector de CSS:

storeAttribute | css=div[1]@id                                                     | divID
storeEval      | '${divID}'.replace("divElement-", "")                             | number
type           | css=tr[id='form-${number}'] > td > form > fieldset > p[1] > input | Type this

Otros consejos

Hay muchas funciones en XPATH que deberían resolver su problema. Suponiendo " divElement- " es una constante que no cambiará y que está utilizando XPath 2.0, sugeriría:

substring-after (div [1] / @ id / text (), " divElement- ")

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