Pergunta

Estou tentando capturar o ID de um elemento que será gerado aleatoriamente. Eu posso capturar com sucesso o valor do meu elemento ID como este ...

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

Agora minha variável será algo como ...

divElement-12345

Eu quero remover 'divisElement-' para que a variável que me restava é '12345' para que eu possa usá-la mais tarde para selecionar o elemento 'Form-12345' associado a ele ... algo assim:

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

Como posso conseguir isso?

Foi útil?

Solução

Você tem duas opções no seletor de selênio, XPath e CSS. Eu li que o seletor CSS é melhor para fazer testes no Firefox e no IE. Usando a versão mais recente do Selenium IDE (3/5/2009), tive sucesso com o uso do StoreEval, que avalia expressões JavaScript, dando acesso às funções de string 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

Seletor 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

Outras dicas

Existem muitas funções no XPath que devem resolver seu problema. Supondo que "divisElement-" seja uma constante que não mudará e que você está usando o XPath 2.0, eu sugeriria:

Substring-After (div [1]/@id/text (), "divisElement-")

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