36

我想使用 Selenium WebDriver 获取下拉列表的选定标签或值,然后在控制台上打印它。

我可以从下拉列表中选择任何值,但我无法检索所选值并打印它:

Select select = new 
Select(driver.findElement(By.id("MyDropDown"))).selectByVisibleText(data[11].substring(1 , data[11].length()-1));
WebElement option = select.getFirstSelectedOption();

但是我所有的努力都是徒劳的。如何获得选定的选项?

4

5 回答 5

68

您应该能够使用getText()(对于您使用的选项元素getFirstSelectedOption())获取文本:

Select select = new Select(driver.findElement(By.xpath("//select")));
WebElement option = select.getFirstSelectedOption();
String defaultItem = option.getText();
System.out.println(defaultItem );
于 2012-08-13T16:21:30.060 回答
19

完成答案:

String selectedOption = new Select(driver.findElement(By.xpath("Type the xpath of the drop-down element"))).getFirstSelectedOption().getText();

Assert.assertEquals("Please select any option...", selectedOption);
于 2012-10-11T04:09:50.517 回答
7

在 Selenium Python 中,它是:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select

def get_selected_value_from_drop_down(self):
    try:
        select = Select(WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.ID, 'data_configuration_edit_data_object_tab_details_lb_use_for_match'))))
        return select.first_selected_option.get_attribute("value")
    except NoSuchElementException, e:
        print "Element not found "
        print e
于 2016-04-07T11:24:01.413 回答
2

在以下选项上:

WebElement option = select.getFirstSelectedOption();
option.getText();

如果从该方法中getText()得到一个空白,则可以使用该方法从选项的值中获取字符串getAttribute

WebElement option = select.getFirstSelectedOption();
option.getAttribute("value");
于 2017-10-30T12:35:49.360 回答
-1
var option = driver.FindElement(By.Id("employmentType"));
        var selectElement = new SelectElement(option);
        Task.Delay(3000).Wait();
        selectElement.SelectByIndex(2);
        Console.Read();
于 2016-12-08T09:37:20.667 回答