Jak wybrać wartość z listy rozwijanej w Selenium
⚡ Inteligentne podsumowanie
Wybierz wartość z listy rozwijanej w Selenium Używa dedykowanej klasy Select do kontrolowania elementów HTML SELECT. Klasa ta udostępnia metody selectByVisibleText, selectByValue i selectByIndex, które precyzyjnie wybierają opcje i obsługują rozwijane listy wielokrotnego wyboru.

Czym jest klasa Select w Selenium?
Wybierz klasę w Selenium to klasa pomocnicza z org.openqa.selenium.support.ui pakiet umożliwiający WebDriverowi interakcję z HTML <select> Elementy. Udostępnia metody umożliwiające zaznaczanie i odznaczanie opcji według widocznego tekstu, wartości lub indeksu oraz wykrywanie, czy lista rozwijana akceptuje wiele wyborów.
Bo Select jest regularny Java klasa, tworzysz instancję za pomocą new słowo kluczowe i przekaż WebElement, który wskazuje na <select> tag na stronie.
Jak wybrać menu rozwijane w Selenium
Przed obsługą listy rozwijanej Selenium, wymagane są dwa kroki:
- Zaimportuj pakiet org.openqa.selenium.support.ui.Wybierz.
- Utwórz listę rozwijaną jako
Selectobiekt w Selenium Sterownik sieciowy.
Na przykład otwórz Mercury Strona rejestracji wycieczek (https://demo.guru99.com/test/newtours/register.php) i znajdź rozwijaną listę „Kraj”.
Krok 1) Importuj pakiet Select.
import org.openqa.selenium.support.ui.Select;
Krok 2) Zadeklaruj element rozwijany jako instancję klasy Select. W poniższym przykładzie instancja ma nazwę drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Krok 3) Rozpocznij sterowanie listą rozwijaną. Użyj dowolnej metody Select, aby wybrać opcję. Poniższy przykład wybiera „ANTARCTICA”:
drpCountry.selectByVisibleText("ANTARCTICA");
Wybierz Metody w Selenium
Klasa Select udostępnia kilka metod interakcji z opcjami rozwijanymi. Pięć najpopularniejszych opisano poniżej.
1) selectByVisibleText() i deselectByVisibleText()
- Zaznacza lub odznacza opcję, której wyświetlany tekst odpowiada parametrowi.
- Parametr: Dokładny tekst wyświetlany dla opcji.
Przykład:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() i deselectByValue()
- Zaznacza lub odznacza opcję, której
valueatrybut pasuje do parametru. - Należy pamiętać, że wyświetlany tekst i
valueatrybuty są często różne, jak pokazano poniżej. - Parametr: opcja
valueatrybutów.
Przykład:
drpCountry.selectByValue("234");
3) selectByIndex() i deselectByIndex()
- Zaznacza lub odznacza opcję o podanym indeksie. Indeksy zaczynają się od zera.
- Parametr: indeks całkowity opcji.
Przykład:
drpCountry.selectByIndex(0);
4) isMultiple()
- Zwroty
TRUEjeśli rozwijana lista pozwala na jednoczesny wybór wielu opcji, w przeciwnym razieFALSE. - Parametr: Żaden.
Przykład:
if (drpCountry.isMultiple()) {
// do something here
}
5) odznaczWszystko()
- Czyści wszystkie zaznaczone opcje. Działa tylko w przypadku list rozwijanych z wieloma opcjami wyboru.
- Parametr: Żaden.
Przykład:
drpCountry.deselectAll();
Absolutna Code wybranych metod w Selenium
Poniższy Java Program demonstruje klasę Select zarówno na liście rozwijanej z pojedynczym wyborem, jak i wieloma wyborami.
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);
}
}
Wybieranie elementów w elemencie SELECT z wieloma elementami
selectByVisibleText() Metoda ta działa również w przypadku list rozwijanych z wieloma opcjami wyboru. Na przykład użyj https://jsbin.com/osebed/2 jako zasadę URL. Otwiera listę rozwijaną, która umożliwia jednoczesne wybranie wielu opcji.
Poniższy fragment kodu wybiera pierwsze dwie opcje za pomocą selectByVisibleText():
Tabela odniesień do metod
W tej tabeli podsumowano wszystkie metody klasy Select omówione powyżej, co ułatwia szybkie wyszukiwanie.
| Command | OPIS |
|---|---|
| wybierzWedługWidocznegoTekstu() / odznaczWedługWidocznegoTekstu() | Zaznacza lub odznacza opcję na podstawie wyświetlanego tekstu. |
| wybierzPoWartości() / odznaczPoWartości() | Zaznacza lub odznacza opcję według jej value atrybutów. |
| wybierz według indeksu () / odznacz według indeksu () | Zaznacza lub odznacza opcję według jej indeksu zaczynającego się od zera. |
| jest wielokrotny() | Zwraca wartość TRUE, jeśli lista rozwijana pozwala na wybór wielu opcji, w przeciwnym wypadku zwraca wartość FALSE. |
| odznacz wszystkie() | Odznacza wszystkie poprzednio wybrane opcje na rozwijanej liście wielokrotnego wyboru. |
Aby sterować polami rozwijanymi, zaimportuj org.openqa.selenium.support.ui.Select Najpierw utwórz pakiet, następnie utwórz instancję Select i wywołaj dowolną z powyższych metod.

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