Como capturar apenas parte de um id?

votos
1

Eu estou tentando capturar o id de um elemento que será gerado aleatoriamente. Eu posso com sucesso capturar 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 'divElement-' para que a variável Eu estou com a esquerda é '12345' para que eu possa usá-lo posteriormente para selecionar o elemento 'forma-12345' associada a ele ... algo como isto:

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

Como eu poderia ser capaz de fazer isso?

Publicado 31/12/2008 em 01:08
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Há muitas funções em XPath que deve resolver o seu problema. Assumindo "divElement-" é uma constante que não vai mudar e que você está usando XPath 2.0, gostaria de sugerir:

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

Respondeu 11/01/2009 em 13:17
fonte usuário

votos
3

Você tem duas opções em selênio, XPath e Selector CSS. Eu li que Selector CSS é melhor para fazer testes no Firefox e IE. Utilizando a mais recente versão do Selenium IDE (2009/03/05) Eu tive sucesso com o uso de storeEval que avalia expressões JavaScript, dando-lhe acesso a funções javascript string.

XPath:

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

CSS Selector:

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
Respondeu 05/03/2009 em 17:37
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more