2 Stimmen

Webdriver Dropdown-Liste kann nicht ausgewählt werden

Ich kann mit meiner Webdriver-Methode keine HTML-Dropdown-Liste auswählen. Was war in meinem Code falsch? Könnten Sie mir einige Hinweise geben.

 <select>
<option value="32">32</option>

<option value="34">34</option>

<option value="36">36</option>

</select>

public static List<WebElement> chooseSize(Integer size){
WebElement select = findElement(By.xpath(DropDown_Article_Size_XPATH_ID));
List<WebElement> options = select.findElements(By.tagName("option"));
for(WebElement option : options){
    if(option.getText().equals(size)){
        option.isSelected(); // or .click()?
       }
}
return options;
}

0voto

Robert Punkte 426

Wenn Sie Selenium2 verwenden, müssen Sie option.click() .

0voto

jherranzm Punkte 135

Ich befürchte, dass es ein Problem mit ChromeDriver und Select gibt. Getestet auf Chrome für MacOSX, .click() und .isSelected() funktionieren nicht. Der gleiche Code in FireFox, funktioniert wie erwartet. Gibt es einen Unterschied zwischen den beiden Browsern?

List<WebElement> opciones = select.getOptions();

for(WebElement el : opciones){
  System.out.println("Elemento disponible: ["+el.getAttribute("value")+"]["+el.getText()+"]");

  //Select actual option            
  el.click();
  if(el.isSelected())
    System.out.println("Selected: ["+el.getAttribute("value")+"]["+el.getText()+"]");
}

0voto

Können Sie tun

WebElement selectElement = driver.findElement(By.xpath(DropDown_Article_Size_XPATH_ID));
selectElement.sendKeys("34") 

wählen Sie 34

So einfach ist das. Sendkeys ist eine sehr nützliche Methode in Webdriver und hat verschiedene Implementierungen für verschiedene Arten von Objekten, d.h. für ein Textfeld würde Sendkeys den Text eingeben, während es für ein Select-Element das Element auswählen würde.

Ich habe sogar gelesen, dass man für ein Datei-Upload-Feld Sendkeys verwenden kann, um den Dateipfad einzugeben.

Prost

Shrikant

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X