使用Selenium获取多个选择的值?

时间:2015-06-10 17:42:53

标签: python selenium

我有一个多重选择元素:

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

如何使用Selenium获取元素的值?

这就是我所拥有的:

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返回一个字符串,而不是一个值数组。我想因为Selenium没有发现它是一个多元素。

有什么方法吗?

2 个答案:

答案 0 :(得分: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]);

答案 1 :(得分: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"));
    }