Как выбрать значение из раскрывающегося списка Selenium
⚡ Умное резюме
Выберите значение из выпадающего списка в Selenium Для управления HTML-элементами SELECT используется специальный класс Select. Класс предоставляет методы selectByVisibleText, selectByValue и selectByIndex, которые точно выбирают параметры и поддерживают выпадающие списки с множественным выбором.

Что такое Select Class в Selenium?
Выберите класс в Selenium это вспомогательный класс из org.openqa.selenium.support.ui Пакет, позволяющий WebDriver взаимодействовать с HTML. <select> элементы. Он предоставляет методы для выбора и отмены выбора параметров по видимому тексту, значению или индексу, а также для определения того, допускает ли выпадающий список множественный выбор.
Так как Select регулярный Java класс, вы создаете экземпляр с помощью new ключевое слово и передайте WebElement, который указывает на <select> тег на странице.
Как выбрать раскрывающийся список в Selenium
Перед обработкой выпадающего списка в SeleniumДля этого требуется два шага:
- Импорт пакета org.openqa.selenium.support.ui.Выбрать.
- Создайте экземпляр выпадающего списка как
Selectобъект в Selenium ВебДрайвер.
В качестве примера откройте Mercury Страница регистрации туров (https://demo.guru99.com/test/newtours/register.php) и найдите выпадающее меню «Страна».
Шаг 1) Импортируйте пакет Select.
import org.openqa.selenium.support.ui.Select;
Шаг 2) Объявите раскрывающийся элемент как экземпляр класса Select. В приведенном ниже примере экземпляр называется drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Шаг 3) Начните управлять выпадающим списком. Для выбора варианта используйте любой из методов выбора. В приведенном ниже примере выбран вариант «АНТАРКТИКА»:
drpCountry.selectByVisibleText("ANTARCTICA");
Выберите методы в Selenium
Класс Select предоставляет несколько методов для взаимодействия с выпадающими списками. Пять наиболее распространенных описаны ниже.
1) selectByVisibleText() и deselectByVisibleText()
- Выбирает или отменяет выбор варианта, отображаемый текст которого соответствует параметру.
- Параметр: Точный текст, отображаемый для данного варианта.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() и deselectByValue()
- Выбирает или отменяет выбор варианта, для которого
valueАтрибут соответствует параметру. - Обратите внимание, что отображаемый текст и
valueАтрибуты часто различаются, как показано ниже. - Параметр: вариант
valueатрибутов.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
drpCountry.selectByValue("234");
3) selectByIndex() и deselectByIndex()
- Выбирает или отменяет выбор опции по указанному индексу. Индексы начинаются с нуля.
- Параметр: Целочисленный индекс опции.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
drpCountry.selectByIndex(0);
4) isMultiple()
- Returns
TRUEесли выпадающий список позволяет выбирать несколько вариантов одновременно, в противном случае — нет.FALSE. - Параметр: никто.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
if (drpCountry.isMultiple()) {
// do something here
}
5) deselectAll()
- Сбрасывает все выбранные параметры. Действительно только для выпадающих списков с несколькими вариантами выбора.
- Параметр: никто.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
drpCountry.deselectAll();
Завершенный Code Избранные методы в Selenium
Следующие Java Программа демонстрирует использование класса Select как для выпадающего списка с одним вариантом выбора, так и для выпадающего списка с несколькими вариантами выбора.
package newpackage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.By;
public class accessDropDown {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");
String baseURL = "https://demo.guru99.com/test/newtours/register.php";
WebDriver driver = new FirefoxDriver();
driver.get(baseURL);
// Single-select drop-down
Select drpCountry = new Select(driver.findElement(By.name("country")));
drpCountry.selectByVisibleText("ANTARCTICA");
// Multi-select drop-down
driver.get("http://jsbin.com/osebed/2");
Select fruits = new Select(driver.findElement(By.id("fruits")));
fruits.selectByVisibleText("Banana");
fruits.selectByIndex(1);
}
}
Выбор элементов в элементе множественного выбора
selectByVisibleText() Этот метод также работает с выпадающими списками, содержащими несколько вариантов выбора. В качестве примера используйте https://jsbin.com/osebed/2 в качестве основы URL. Он отображает выпадающее меню, позволяющее одновременно выбрать несколько вариантов.
Приведённый ниже фрагмент кода выбирает первые два варианта, используя selectByVisibleText():
Таблица справочных данных по методам
В этой таблице приведено краткое описание всех методов класса Select, рассмотренных выше, для быстрого поиска.
| Command | Описание |
|---|---|
| selectByVisibleText() / deselectByVisibleText() | Выбирает или отменяет выбор опции по отображаемому тексту. |
| selectByValue() / deselectByValue() | Выбирает или отменяет выбор опции по ее значению. value атрибутов. |
| selectByIndex() / deselectByIndex() | Выбирает или отменяет выбор опции по ее индексу, начинающемуся с нуля. |
| isMultiple() | Возвращает TRUE, если выпадающий список позволяет выбрать несколько вариантов, в противном случае — FALSE. |
| убрать выделение со всего() | Снимает выделение со всех ранее выбранных параметров в выпадающем списке с множественным выбором. |
Для управления выпадающими списками импортируйте... org.openqa.selenium.support.ui.Select Сначала создайте пакет, затем создайте экземпляр Select и вызовите любой из описанных выше методов.

.png)
.png)
.png)
.png)