Bonjour à toutes et tous
Je ne sais pas si je publie cette discussion au bon endroit. Si ce n'est pas le cas, merci de vouloir me dire à quel endroit dois-je le mettre.
J'explique mon problème:
Je doit tester une application qui créer un produit. L'encodage des données se font via une dialogue boxe écrite en Bootstrap.
Lorsque l'utilisateur commence à écrire le nom du produit, après le 3ème caractère, une liste déroulante apparait juste en-dessous du champs d'encodage avec la liste des produits existant dont le nom commence avec les lettres introduites. Si le nom du produit existe, je dois le sélectionner. Dans le cas contraire, je dois le créer.
Donc, avec Selenium, je dois le tester. J'ai crée un test case
Si j'exécute ce code en pas à pas, cela fonctionne très bien. Par contre, si je l'exécute tout seul, la liste déroulante n'apparait pas et le code se plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <!-- J'envoie la chaine de caractère "Prod" (pour "Produit" ) --> <tr> <td>sendKeys</td> <td>id=NomProduit</td> <td>Prod</td> </tr> <!-- Ici se trouve mon problème : J'attend que la liste déroulante apparaisse pour contrôler si le nom encodé existerais ou pas --> <tr> <td>waitForElementPresent</td> <td>class=typeahead dropdown-menu</td> <td></td> </tr> <tr> <td>storeElementPresent</td> <td>class=typeahead dropdown-menu</td> <td>isPresent</td> </tr> <!-- Si le nom du produit existe dans la liste, je l'utilise. Dans le cas contraire, je dois le créer --> <tr> <td>gotoIf</td> <td>${isPresent} == true</td> <td>SelectionneProduit</td> </tr>
Je reçois une erreur de violation de clé primaire (logique puisque l'enregistrement existe).
J'ai également utilisé l'instruction
Dans ce cas, après 30 secondes je reçois l'erreur 'Time out'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <tr> <td>sendKeysAndWait</td> <td>id=NomProduit</td> <td>Prod</td> </tr>
J'ai déjà cherché sur Google. Le problème viendrais de l'affichage de la liste déroulante (le JavaScript de Sélénium bypass le JavaScript de l'application)
Auriez-vous des idées à me soumettre ?
Merci d'avance de votre aide
Bonne journée
André
Partager