2012-10-17 9 views
37

Wie kann ich einen Artikel aus einer Dropdown-Liste wie Geschlecht (z. B. männlich, weiblich) mit Selenium WebDriver mit Java auswählen?Wie wähle ich einen Gegenstand aus einer Dropdown-Liste mit Selenium WebDriver mit Java?

Ich habe schon versucht, diese

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 obigen Code hat nicht funktioniert.

+1

ähnlich: http://stackoverflow.com/questions/7232544/selenium-webdriver-and-dropdown-boxes – 3ck

+0

leider dieser couldn, mir t helfen .. kann Sie bieten mir den Weg oder geben Sie mir eine Idee, so kann ich fortfahren –

+1

Stackoverflow Benutzer hilft denen, die sich selbst helfen :) – Amey

Antwort

41

Gebrauch -

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

Natürlich müssen Sie import org.openqa.selenium.support.ui.Select;

+3

Beachten Sie, dass in C# die Klasse 'SelectElement' anstelle von' Select' ist. Es gehört auch nicht zum 'Selenium.WebDriver' Paket. Um diese Klasse verwenden zu können, müssen Sie auch das' Selenium.Support' Paket installieren. –

+0

Können Sie uns bitte mitteilen, warum wir WebElement in eine Select-Instanz konvertieren müssen? Ist es nur so, dass wir bestimmte Methoden wählen können, die es einfach machen, select zu automatisieren? Können wir auch eine Auswahl automatisieren, ohne die Select-Klasse zu verwenden? – testerjoe2

3
WebElement selectgender = driver.findElement(By.id("gender")); 
selectgender.sendKeys("Male"); 
3

Sie 'Select' Klasse von Selen WebDriver von Maitreya als entsandte verwenden können. Entschuldigung, aber ich bin ein bisschen verwirrt darüber, warum ich die Zeichenfolge mit "Deutschland" vergleichen soll. Hier ist der Code-Schnipsel,

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

Import import org.openqa.selenium.support.ui.Select; nach dem obigen Code hinzufügen. Jetzt Geschlecht wird ausgewählt, die Sie jemals gegeben haben (männlich/weiblich).

0
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 verwende GOOGLE LOGIN PAGE, um die Auswahloption zu testen. Das obige Beispiel war, die Sprache "Filipino" aus der Dropdown-Liste zu finden und auszuwählen. Ich bin mir sicher, dass dies das Problem lösen wird.

1
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(); 
} 
21

wickeln Sie Ihr WebElement in Objekt auswählen, wie unten

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

Sobald dies geschehen ist Sie den gewünschten Wert in 3 Möglichkeiten auswählen kann. 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> 

Jetzt Drop-Down zu identifizieren Sie

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

Um die Option sagen 'Programmer' Sie

dropdown.selectByVisibleText("Programmer "); 

oder

dropdown.selectByIndex(1); 
tun können

oder

dropdown.selectByValue("prog"); 

Glücklich Coding :)

5

Tagname Sie, wie die "Option" erwähnt sollte, wenn Text mit Platz können wir diese Methode verwenden, 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(); 
} 
1

Um dieses spezielle Drop-Down-Element

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

Um die Liste aller Elemente in Dropdown-Box

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

So wählen Sie es durch sichtbaren Text optoion

gender.selectByVisibleText("Male"); 
zu finden zu bekommen

Zu sel ect es durch den Index

gender.selectByIndex(1); 
Verwandte Themen