Pergunta

Eu quero armazenar parte de um id, e jogar fora o resto. Por exemplo, eu tenho um elemento html com uma identificação de 'elemento-12345'. Eu quero jogar fora 'element-' e manter '12345'. Como posso fazer isso?

I pode capturar e exibir o valor, como este:

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

Quando eu executar o teste, eu recebo algo como isto:

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

Eu estou gravando com o Selenium IDE, e copiando o teste sobre em Fitnesse, usando o gabarito de selênio Bridge. O problema é que eu estou usando um banco de dados limpo cada vez que eu executar o teste, com ids aleatórios que eu preciso para captura e uso em todo o meu teste.

Foi útil?

Solução

A solução é usar a função replace() JavaScript com storeEval:

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

Agora, se eu echo myID I obter apenas o ID:

| echo | ${myID} | 12345 |

Outras dicas

/ elemento - (\ d +) / i

Isso é uma expressão regular que captura os números após o traço.

Algo como isto pode trabalho:

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

Para fazer regex exige XPath 2.0 -. Não tenho certeza que implementa versão selênio

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top