2013-05-27 2 views
1

Как я могу получить все элементы из выпадающего списка? Я использовал:Как я могу получить все элементы из выпадающего списка?

List<WebElement> elements = driver.findElements(By.id("s")); 

Но я всегда получаю только первый элемент.

+0

вы можете вставить HTML-код этого – Omkar

+0

Это может быть полезно для вас. [http://stackoverflow.com/questions/9562853/how-to-get-all-options-in-a-drop-down-list-by-selenium-webdriver-c][1] [1]: http://stackoverflow.com/questions/9562853/how-to-get-all-options-in-a-drop-down-list-by-selenium- webdriver-c – Learner

ответ

1

Namita,

с ниже код, который вы получите список доступных опций в окне выбора и нажать на одну.

Опции списка = select.findElements (By.tagName ("option"));

for(WebElement option : options){ 
     if(option.getText().equals("male")) { 
      option.click(); 
      break; 
     } 
    } 
6

Существует класс, предназначенный для этого в bindigs.

Вы ищете Select класса:

https://code.google.com/p/selenium/source/browse/java/client/src/org/openqa/selenium/support/ui/Select.java

Вы должны были бы «найти» фактический select элемент, а не отдельные варианты. Найдите этот элемент select, и пусть Selenium & класс Select сделает остальную работу за вас.

Вы бы искать что-то вроде (s быть фактический select элемент):

WebElement selectElement = driver.findElement(By.id("s"); 
Select select = new Select(selectElement); 

Select класс имеет удобный getOptions() метод. Это будет делать именно то, что вы думаете.

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

Теперь вы можете делать то, что хотите, с allOptions.

+0

Имеет смысл. Спасибо –

+0

Это хорошо. Спасибо. Есть ли способ получить значения каждого параметра? – Citronex

1

Используйте эту надежду, это будет полезно для вас.

List WebElement allSuggestions = driver.findElements(By.xpath("Your Xpath"));  
     for (WebElement suggestion : allSuggestions) 
    { 
     System.out.println(suggestion.getText()); 

     } 
3

Это поможет перечислить все элементы из выпадающего списка:

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

    //Get all options 
    List<WebElement> dd = dropdown.getOptions(); 

    //Get the length 
    System.out.println(dd.size()); 

    // Loop to print one by one 
    for (int j = 0; j < dd.size(); j++) { 
     System.out.println(dd.get(j).getText()); 

    } 
0
List<WebElement> featureList; 

featureList = Locate your Element; 

for (WebElement i : featureList) {    
System.out.println("\n********************** " + i.getText()); 
} 
+0

Пожалуйста, объясните свой код – mplungjan

+0

Зачем нужно OP ___try this___? ** Хорошие ответы ** всегда будут объяснять, что было сделано и почему это было сделано именно так, не только для OP, но и для будущих посетителей SO, которые могут найти этот вопрос и прочитать ваш ответ. – RiggsFolly

0
WebElement ele=driver.findElement(By.xpath(".//*[@id='month']")); 
     List<WebElement> x = ele.findElements(By.tagName("option")); 
     for(WebElement ele1:x) { 
      String y=ele1.getAttribute("innerHTML"); 
      System.out.println(y); 
     } 
+2

Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст относительно того, почему и/или как этот код отвечает на вопрос, улучшает его долгосрочную ценность. – rollstuhlfahrer

Смежные вопросы