Selenium webdriver C# CSS dropdown Question - Élément doit avoir été sélectionner, mais était div
J'ai un code html comme ci-dessous.
<div class="rowElem fullSize ">
<div class="jqTransformSelectWrapper" style="z-index: 10; width: 276px;">
<div>
<span style="width: 245px;">MasterCard</span>
<a class="jqTransformSelectOpen" href="#"/>
</div>
<ul style="width: 274px; display: none; visibility: visible; height: 100px; overflow: hidden;">
<li><a class="selected" index="0" href="#">MasterCard</a></li>
<li><li><li>
</ul>
<select id="CardProvider" class="jqTransformHidden" name="CardKey" style="">
<option value="1">MasterCard</option>
<option value="2">VISA</option>
<option value="3">AMEX</option>
<option value="4">DEBIT</option>
</select>
</div>
</div>
Ici, c'est un menu déroulant où l' //div/div/div n'a qu'un seul champ affiché.
//div/div/ul a quatre li qui a le même fournisseur d'entrée comme la balise select.
J'ai essayé avec beaucoup de combinaisons à choisir une valeur dans la liste déroulante.
Si j'utilise //div/div[@sélectionnez[id="CardProvider"] avec FindElement et il retourne la première valeur.
Si j'utilise //div/div/[@sélectionnez[id]"cardProvider"]/ul//un - Il est de retour moi avec quatre valeurs.
Cependant, je ne suis pas en mesure de sélectionner le menu que l'on en attend balise select, mais était div. Si j'écris une requête à porter le nom de balise select, le texte, la valeur de retour nulle.
Je didnot donner mon sélénium commande que rien n'a fonctionné, et vu le code html pour votre référence. De bien vouloir me donner vos entrées pour remédier à cela.
OriginalL'auteur Vinee | 2012-11-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer d'éviter par rapport xpath si celles-ci peuvent être évités. Dans votre code html, l'élément select a un identifiant unique id, qui peut être utilisé.
Vous pouvez essayer de le ci-dessous:
Vous pouvez vous référer cette pour plus d'.
OriginalL'auteur niharika_neo
franchement je préfère avec les sélecteurs css.
1ère approche:
2ème approche:
si jQuery est pris en charge, vous pouvez cliquer directement sur les options du menu sans avoir à cliquer sur le menu déroulant précédemment:
3ème approche
en cliquant à l'aide de modèle DOM:
Et n'oubliez pas de vérifier trouvé des requêtes xpath ou sélecteurs css dans firebug, firebug addon de firefox:
Espère que cela vous aide.
vous êtes les bienvenus =)
OriginalL'auteur eugene.polschikov
J'ai simplement suivi une approche différente (genre de solution) d'avoir deux xpath pour le localiser, et il fonctionne très bien.
Le Code que j'ai utilisé est
où XPATH2ofDROPDOWNLISTELEMENT = //*[@id='frmForm']//a[contient(text(), 'MasterCard')]
Bien vouloir me faire savoir si vous avez une réponse en dehors de celui mentionné sur la carte.
OriginalL'auteur Vinee
Ci-dessous la solution qui fonctionne le mieux en cas de liste déroulante mise en œuvre sans sélectionner
driver.findElements(By.xpath("//div[@class='dropdown-menu']/div[@class='dropdown-menu-item']")).get(0).getText().equals("Option 1")
vous avez besoin pour mettre cela en boucle pour tous les éléments de menu et fonctionne sans problème.
OriginalL'auteur vikramvi
J'ai fait face à un problème similaire dans mon code et les étapes ci-dessus fixé.
OriginalL'auteur Kishan Piratla
travaillé comme un charme
OriginalL'auteur shubhi
Vérifiez tout d'abord que: - Déposer vers le bas dans votre INTERFACE utilisateur/FrontEnd est à l'aide de "sélectionner" méthode ou pas ?
Et si non, alors utilisez-dessous l'extrait de code qui va cliquer dans la liste déroulante et sélectionnez la valeur.
WebElement selectMyElement = pilote.findElement(ce.getObject(Par.Id("Id de Votre liste Déroulante")));
selectMyElement.cliquez sur();
OriginalL'auteur Niyati
Vous pouvez essayer ceci:
OriginalL'auteur Abhishek_Mishra