Как получить выбранный вариант с помощью Selenium WebDriver с Java

Я хочу получить выбранный ярлык или значение из раскрывающегося списка с помощью Selenium WebDriver, а затем распечатать его на консоли .

Я могу выбрать любое значение из раскрывающегося списка, но не могу получить выбранное значение и распечатать его:

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

Но все мои усилия были напрасны. Как мне получить выбранный вариант?


person Aditi    schedule 13.08.2012    source источник


Ответы (5)


Вы должны иметь возможность получить текст с помощью getText() (для элемента option, который вы получили с помощью getFirstSelectedOption()):

Select select = new Select(driver.findElement(By.xpath("//select")));
WebElement option = select.getFirstSelectedOption();
String defaultItem = option.getText();
System.out.println(defaultItem );
person Justin Ko    schedule 13.08.2012
comment
Я бы добавил для будущих читателей, что нам нужно импортировать org.openqa.selenium.support.ui.Select для работы с элементами Select. - person Michal; 05.09.2013
comment
getFirstSelectedOption генерирует исключение org.openqa.selenium.NotFoundException, если не выбран ни один параметр. Я бы рекомендовал использовать это исключение в качестве защитной меры. - person Jim Kennedy; 28.03.2021

Завершение ответа:

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);
person Bhuvan    schedule 11.10.2012

В 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
person Riaz Ladhani    schedule 07.04.2016

По следующему варианту:

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

Если из метода getText() вы получите пробел, вы можете получить строку из значения параметра с помощью метода getAttribute:

WebElement option = select.getFirstSelectedOption();
option.getAttribute("value");
person Miguel    schedule 30.10.2017

person    schedule
comment
Хотя этот фрагмент кода может решить вопрос, включение объяснения действительно помогает улучшить качество вашего поста. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причины вашего предложения кода. - person DimaSan; 08.12.2016