2009-09-25 4 views
8

J'essaie de sélectionner une valeur dans un élément select. J'utilise Selenium RC (Java) pour exécuter les cas de test. Je comprends que le code de sélection d'une valeur est donnée par:Utilisation de Selenium pour sélectionner une option sur un select avec optgroup

selenium.select("locator", "value=REQUIRED VALUE") 

Je suis incapable de sélectionner la valeur souhaitée avec le code ci-dessus. Je pense que cela pourrait être quelque chose à faire avec optgroup dans le code source sélectionné. Je ne reçois aucune exception, la commande s'exécute bien mais en regardant la page, la valeur requise n'est pas sélectionnée. Aussi, je ne peux pas utiliser ids (au lieu de valeur) parce qu'il n'y en a pas. Voici le code source du sélecteur:

<select> 
    <optgroup label="Group1"> 
     <option value="13">some value1</option> 
     <option value="25">some value2</option> 
    </optgroup> 
    <optgroup label="Group2"> 
     <option value="18">REQUIRED VALUE</option> 
     <option value="34">some value3</option> 
     ... 
     ... 
    </optgroup> 
</select> 

Y a-t-il un moyen de sélectionner la valeur requise en utilisant le sélénium?

Ce serait bien si nous pouvions éviter les valeurs d'option (telles que "18", "34", etc.) parce que ces chiffres changent plus tard que les valeurs changent. Par exemple, "REQUIRED VALUE" a une valeur -18 mais si je devais supprimer cet élément et l'ajouter à nouveau, sa valeur serait différente. Fondamentalement, cette liste déroulante est dynamique.

Répondre

13

La valeur de l'option requise dans votre exemple est réellement '18'. Effectuez les opérations suivantes:

selenium.select("locator", "label=REQUIRED VALUE") 
+0

Salut Dave, Merci pour la réponse. Mais pensez-vous qu'il existe une autre façon d'utiliser 18? Le contenu de la liste déroulante change dans ma demande et ainsi de suite. En d'autres termes, en ce moment, il montre comme mais il peut être n'importe quel nombre. Même si j'exécute mes tests plusieurs fois, ces chiffres changent. Avez-vous d'autres idées sur ce qui peut être fait? En attendant, je vais mettre à jour ce commentaire sur ma question aussi. Merci, Mugen – Mugen

+1

Vérifiez à nouveau ma réponse. Je suggère de changer 'value =' en 'label ='. Cela vous permet de sélectionner une option en fonction de son libellé au lieu de sa valeur. –

+1

Merci d'avoir répondu. Cela fonctionne parfaitement avec l'étiquette! – Mugen

Questions connexes