我有一个多重选择元素:
<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没有发现它是一个多元素。
有什么方法吗?
答案 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"));
}