2015-06-10 2 views
0

У меня есть несколько выбора элемента:Получать значения нескольких выборок с помощью селена?

<select multiple="multiple" id="myselect"> 
    <option value="AL">Alabama</option> 
    <option value="AK">Alaska</option> 
    ... 
</select> 

Как я могу получить значение элемента с селеном?

Это то, что у меня есть:

elem = self.browser.find_element_by_css_selector('#myselect') 
self.assertEqual('NY', denom_val.get_attribute("value")[0]) 
self.assertEqual('CO', denom_val.get_attribute("value")[1]) 

Но на самом деле, get_attribute возвращает строку, а не массив значений. Наверное, потому что Селен не заметил, что это несколько элементов.

Есть ли способ обойти это?

ответ

0

Это Java-способ делать то, что вы просите. Надеюсь, это поможет. Приветствия.

// Values into array     
List<WebElement> selElement = driver.findElements(By.cssSelector("select#myselect > option")); 
String[] selText = new String[selElement.size()]; 

// Text of corresponding elements into array     
int index = 0; 
       for(WebElement element : selElement){ 
        selText[index++] = element.getText(); 
       } 
       Assert.assertEquals("Alabama" 
         ,selText[0]); 
0

Это способ получить значения из выпадающего:

WebElement element = driver.findElement(By 
      .id("myselect")); 
    List<WebElement> listOfOptions = element.findElements(By 
      .tagName("option")); 
    for (int index = 0; index < listOfOptions.size(); index++) { 
     WebElement optionEle = listOfOptions.get(index); 
     System.out.println("Option :->> " + optionEle.getText()); 
     System.out.println("Option-Value :->> " + optionEle.getAttribute("value")); 
    }