Ne peut pas sélectionner un élément dans la liste déroulante
J'ai une liste déroulante que je ne peut pas sélectionner un élément de. Je peut faire une boucle sur tous les éléments dans la liste et de trouver celle que je veux, mais le click() ne permet pas de sélectionner l'élément.
Voici le code. Quelqu'un peut-il aider?
driver.findElement(By.id("components-multi-select")).findElement(By.className("icon")).click();
driver.findElement(By.id("components-suggestions"));
List<WebElement> componentList = driver.findElements(By.className("aui-list-item"));
for (WebElement component : componentList){
System.out.println(component.getText());
if (component.getText().contains(newComponent)){
component.click();
break;
}
else{
System.out.println("not equal");
}
Voici le code html de l'élément dans la liste déroulante.
<div class="field-group aui-field-componentspicker frother-control-renderer" >
<label for="components">Component/s</label>
<div class="ajs-multi-select-placeholder textarea long-field"></div>
<select class="select hidden " id="components" multiple="multiple" name="components" size="5" data-remove-null-options="true">
<option value="-1">
Unknown
</option>
<option selected="selected" title="Component 1 - A test component" value="10240">
Component 1
</option>
<option title="Component 2 - " value="10242">
Component 2
</option>
<option title="Lee 2 " value="10371">
Lee 2
</option>
<option title="Roy " value="10370">
Roy
</option>
<option title="Test Documentation " value="10241">
Test Documentation
</option>
</select>
Pouvez-vous poster une partie de code html qui contient la liste? Il semble que la liste est une sorte de 3d-partie widget
OriginalL'auteur John | 2010-11-24
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Leo Arias
J'imagine que vous avez déjà vu ça, mais le tutoriel montre un exemple de sélection d'options comme:
Donc, au lieu de l'appeler sur vous devez appeler la méthode setSelected
Vous pouvez également utiliser
Plus d'infos ici: http://seleniumhq.org/docs/09_webdriver.html
Je suis toujours confus par votre question que vous avez posté code html qui a une liste d'options, mais dans votre code, vous de recherche d'un élément par le nom de la classe qui n'existe pas dans votre code html.. peut-être que vous essayez juste de cliquez sur une sorte de menu déroulant et pas une zone de sélection d'option..
Si vous le pouvez, essayez de faire un réel simple page web qui est un bare-bones page html avec une selectbox en elle et voir si vous pouvez reproduire le comportement là.. Si oui, écrire la question comme un problème pour le sélénium/webdriver personnes et de voir si ils peuvent le faire réparer. Je ne suis pas en utilisant le client java, mais il fonctionne très bien pour moi avec ruby.
OriginalL'auteur Matt Wolfe
Vous devriez trouver votre
select
élément premier et puis itérer sur sonoption
sEn utilisant le code HTML que vous avez fourni mon code fonctionne très bien. Pouvez-vous poster le CSS? Est-ce que le widget développé par votre entreprise ou êtes-vous à l'aide de certains tiers? (Dojo, YUI, etc)
OriginalL'auteur Sergii Pozharov
Si vous essayez de déclencher une onselect cas pour un certain but, vous pouvez utiliser sendkeys("\t). c'est à dire pour simuler la tabulation de l'élément.
OriginalL'auteur Vikas