Question

J'essaie de capturer l'identifiant d'un élément qui sera généré de manière aléatoire. Je peux capturer avec succès la valeur de mon identifiant d'élément comme ceci ...

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

Maintenant, ma variable sera quelque chose comme ...

divElement-12345

Je souhaite supprimer "divElement-" pour que la variable qui me reste soit "12345" afin de pouvoir l'utiliser ultérieurement pour sélectionner l'élément "formulaire-12345" qui lui est associé ... quelque chose comme ceci:

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

Comment pourrais-je y parvenir?

Était-ce utile?

La solution

Vous avez deux options dans Selenium, XPath et CSS Selector. J'ai lu que le sélecteur CSS est préférable pour effectuer des tests dans FireFox et IE. Utilisation de la dernière version de Selenium IDE (05/03/2009) L’utilisation de storeEval, qui évalue les expressions Javascript, a permis d’accéder aux fonctions de chaîne 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

Sélecteur 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

Autres conseils

XPATH comporte de nombreuses fonctions qui devraient résoudre votre problème. En supposant que " divElement- " est une constante qui ne changera pas et que vous utilisez XPath 2.0, je suggérerais:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top