wake-up-neo.com

Wie kann ich mit Selenium WebDriver mit Java ein Element aus einer Dropdown-Liste auswählen?

Wie kann ich mit Selenium WebDriver mit Java ein Element aus einer Dropdown-Liste wie Geschlecht (z. B. männlich, weiblich) auswählen?

Ich habe es versucht

WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("Male"));
for (WebElement option : options) {
    if("Germany".equals(option.getText()))
        option.click();   
}

Mein oben genannter Code hat nicht funktioniert.

39
user1754106

Verwenden -

new Select(driver.findElement(By.id("gender"))).selectByVisibleText("Germany");

Natürlich musst du import org.openqa.Selenium.support.ui.Select;

42
some_other_guy

Wickeln Sie Ihr WebElement einfach wie unten gezeigt in Select Object ein

Select dropdown = new Select(driver.findElement(By.id("identifier")));

Sobald dies erledigt ist, können Sie den gewünschten Wert auf drei Arten auswählen. Betrachten Sie eine HTML-Datei wie diese

<html>
<body>
<select id = "designation">
<option value = "MD">MD</option>
<option value = "prog"> Programmer </option>
<option value = "CEO"> CEO </option>
</option>
</select>
<body>
</html>

Nun zu identifizieren Dropdown tun

Select dropdown = new Select(driver.findElement(By.id("designation")));

Um die Option auszuwählen, sagen Sie 'Programmer', was Sie tun können

dropdown.selectByVisibleText("Programmer ");

oder

dropdown.selectByIndex(1);

oder

dropdown.selectByValue("prog");

Happy Coding :)

21
Abhishek Singh

Tagname, den Sie so erwähnen sollten "Option", wenn Text mit Leerzeichen wir diese Methode verwenden können, sollte es funktionieren.

WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("option"));

for (WebElement option : options) {

if("Germany".equals(option.getText().trim()))

 option.click();   
}
5
Sathish

Sie können die von Maitreya bereitgestellte Klasse 'Select' von Selenium WebDriver verwenden. Es tut mir leid, aber ich bin ein bisschen verwirrt, dass ich das Geschlecht aus der Dropdown-Liste ausgewählt habe, um die Zeichenfolge mit "Deutschland" zu vergleichen. Hier ist das Code-Snippet,

Select gender = new Select(driver.findElement(By.id("gender")));
gender.selectByVisibleText("Male/Female");

Einführen import org.openqa.Selenium.support.ui.Select; nach dem Hinzufügen des obigen Codes. Nun wird das Geschlecht ausgewählt, welches Sie gegeben haben (männlich/weiblich).

3
Deepu

Google zeigt "select item Selenium webdriver" an: Wie setze ich eine Option, die mit dem Selenium WebDriver (Selenium 2.0) -Client in Ruby ausgewählt wurde als erstes Ergebnis. Dies ist kein Java, aber Sie sollten in der Lage sein, es ohne zu viel Arbeit zu übersetzen. https://sqa.stackexchange.com/questions/1355/was-ist-der-Korrekturweg-zur-Auswahl-und-Verwendung-von-Selenium-Python-Webtreibern ist ganz oben 5, wieder nicht Java aber die API ist sehr ähnlich.

3
Mene
WebElement selectgender = driver.findElement(By.id("gender"));
selectgender.sendKeys("Male");
3
Anand Somani
WebElement select = driver.findElement(By.id("gender"));
List<WebElement> options = select.findElements(By.tagName("option"));
for (WebElement option : options) {
   if("Germany".equals(option.getText()))
       option.click();   
}
1
Anand Somani

So finden Sie ein bestimmtes Dropdown-Feldelement:

Select gender = new Select(driver.findElement(By.id("gender")));

So rufen Sie die Liste aller in der Dropdown-Box enthaltenen Elemente ab:

for(int j=1;j<3;j++)
    System.out.println(gender.getOptions().get(j).getText());

So wählen Sie ihn durch sichtbaren Text aus, der angezeigt wird, wenn Sie darauf klicken:

gender.selectByVisibleText("Male");

So wählen Sie es nach Index aus (beginnend bei 0):

gender.selectByIndex(1);
1
Rishi369
public class checkBoxSel {

    public static void main(String[] args) {

         WebDriver driver = new FirefoxDriver();
         EventFiringWebDriver dr = null ;


         dr = new EventFiringWebDriver(driver);
         dr.get("http://www.google.co.in/");

         dr.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

         dr.findElement(By.linkText("Gmail")).click() ;

         Select sel = new Select(driver.findElement(By.tagName("select")));
         sel.selectByValue("fil");

    }

}

Ich benutze GOOGLE LOGIN PAGE, um die Auswahloption zu testen. Das obige Beispiel bestand darin, die Sprache "Filipino" aus der Dropdown-Liste zu finden und auszuwählen. Ich bin sicher, dass dies das Problem lösen wird.

0
MKod