Question

Je veux stocker une partie d'un identifiant et jeter le reste. Par exemple, j'ai un élément HTML avec un identifiant de "élément-12345". Je veux jeter 'élément-' et garder '12345'. Comment puis-je accomplir cela?

Je peux capturer et afficher la valeur, comme ceci:

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

Lorsque je lance le test, je reçois un résultat similaire à celui-ci:

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

Je suis en train d’enregistrer avec Selenium IDE et de copier le test dans Fitnesse en utilisant l’appareil Selenium Bridge. Le problème, c’est que j’utilise une base de données propre chaque fois que je lance le test, avec des identifiants aléatoires que je dois capturer et utiliser tout au long de mon test.

Était-ce utile?

La solution

La solution consiste à utiliser la fonction replace () de JavaScript avec storeEval :

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

Maintenant, si je répète myID , je ne reçois que l'ID:

| echo | ${myID} | 12345 |

Autres conseils

/ element - (\ d +) / i

C'est une expression régulière qui capturerait les nombres après le tiret.

Quelque chose comme ceci pourrait fonctionner:

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

Faire une regex nécessite XPath 2.0 - vous ne savez pas quelle version est implémentée par Selenium.

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