Как да изберете стойност от падащото меню в Selenium
⚡ Умно обобщение
Изберете стойност от падащото меню в Selenium използва специалния клас Select за управление на HTML 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.
- Създайте инстанция на падащото меню като
Selectобект в Selenium WebDriver.
Като пример, отворете Mercury Страница за регистрация на Tours (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) изберетеByVisibleText() и отменете избораByVisibleText()
- Избира или отменя избора на опцията, чийто показан текст съответства на параметъра.
- Показател: точният текст, показан за опцията.
Пример:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() и deselectByValue()
- Избира или отменя избора на опцията, чиято
valueатрибутът съответства на параметъра. - Обърнете внимание, че показаният текст и
valueатрибутите често са различни, както е показано по-долу. - Показател: опцията
valueатрибут.
Пример:
drpCountry.selectByValue("234");
3) selectByIndex() и deselectByIndex()
- Избира или отменя избора на опцията при дадения индекс. Индексите са базирани на нула.
- Показател: целочисленият индекс на опцията.
Пример:
drpCountry.selectByIndex(0);
4) еМножествен()
- Връщане
TRUEако падащото меню позволява едновременно избиране на множество опции, в противен случайFALSE. - Показател: никой.
Пример:
if (drpCountry.isMultiple()) {
// do something here
}
5) отмяна на избора ()
- Изчиства всяка избрана опция. Валидно само за падащи менюта с множествен избор.
- Показател: никой.
Пример:
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);
}
}
Избиране на елементи в множествен SELECT елемент
- selectByVisibleText() Методът работи и с падащи менюта с множествен избор. Като пример, използвайте https://jsbin.com/osebed/2 като база URLТой показва падащо меню, което приема множество опции едновременно.
Фрагментът по-долу избира първите две опции, използвайки selectByVisibleText():
Таблица с методи за справка
Тази таблица обобщава всеки метод на Select-class, разгледан по-горе, за бързо търсене.
| Команда | Descriptйон |
|---|---|
| изберетеПоВидимТекст() / отменете избораПоВидимТекст() | Избира или отменя избора на опция чрез показания текст. |
| изберетеПоСтойност() / отменете избораПоСтойност() | Избира или отменя избора на опция по нейната value атрибут. |
| изберетеПоИндекс() / отменете избораПоИндекс() | Избира или отменя избора на опция по нейния индекс, базиран на нула. |
| isMultiple() | Връща TRUE, ако падащото меню позволява множество опции, в противен случай FALSE. |
| премахване на всички() | Премахва избора на всички предварително избрани опции в падащо меню с множествен избор. |
За да контролирате падащите менюта, импортирайте org.openqa.selenium.support.ui.Select първо създайте инстанция на Select и извикайте някой от горните методи.

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