Domanda

Sto cercando di catturare l'id di un elemento che verrà generato casualmente. Posso catturare con successo il valore del mio ID elemento come questo ...

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

Ora la mia variabile sarà qualcosa come ...

divElement-12345

Voglio rimuovere 'divElement-' in modo che la variabile che mi rimane sia '12345' in modo da poterla utilizzare in seguito per selezionare l'elemento 'form-12345' associato ad esso ... qualcosa del genere:

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

Come potrei riuscire a farlo?

È stato utile?

Soluzione

Sono disponibili due opzioni in Selenium, XPath e CSS Selector. Ho letto che CSS Selector è meglio per fare test sia su FireFox che su IE. Utilizzando l'ultima versione di Selenium IDE (3/5/2009) ho avuto successo con l'utilizzo di storeEval che valuta le espressioni Javascript, dandoti accesso alle funzioni stringa 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

Selettore 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

Altri suggerimenti

Esistono molte funzioni in XPATH che dovrebbero risolvere il tuo problema. Supponendo che " divElement- " è una costante che non cambierà e che stai usando XPath 2.0, suggerirei:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top