Jak vybrat hodnotu z rozbalovací nabídky Selenium
Jak vybrat rozevírací seznam v Selenium
Následuje postup krok za krokem, jak vybrat hodnotu z rozevíracího seznamu Selenium:
Před manipulací s rozevíracím seznamem Selenium a ovládání rozbalovacích polí, musíme udělat následující dvě věci:
- Importujte balíček org.openqa.selenium.support.ui.Vyberte
- Vytvořte instanci rozevíracího pole jako objekt, Vybrat v Selenium webový ovladač
Jako příklad přejděte na Mercury Stránka registrace zájezdů (https://demo.guru99.com/test/newtours/register.php) a všimněte si tam rozevíracího pole „Země“.
Krok 1) Importujte balíček „Select“.
import org.openqa.selenium.support.ui.Select;
Krok 2) Deklarujte rozevírací prvek jako instanci třídy Select.
V níže uvedeném příkladu jsme tuto instanci pojmenovali jako „drpCountry“.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Krok 3) Začněte jej ovládat.
Nyní můžeme začít ovládat „drpCountry“ pomocí kterékoli z dostupných metod Select pro výběr rozevíracího seznamu Selenium. Ukázkový kód níže vybere možnost „ANTARKTIKA“.
drpCountry.selectByVisibleText("ANTARCTICA");
Vyberte Class in Selenium
Jedno Vyberte Class in Selenium je metoda používaná k implementaci značky HTML SELECT. Značka html select poskytuje pomocné metody pro výběr a zrušení výběru prvků. Třída Select je běžná třída, takže k vytvoření jejího objektu se používá klíčové slovo New, které určuje umístění webového prvku.
Vyberte Metody v Selenium
Níže jsou uvedeny nejběžnější metody používané na Selenium rozbalovací seznam.
#1) selectByVisibleText() a deselectByVisibleText()
- Vybere/odznačí možnost, která zobrazí text odpovídající parametru.
- Parametr: Přesně zobrazený text konkrétní možnosti
Příklad:
drpCountry.selectByVisibleText("ANTARCTICA");
#2) selectByValue() a deselectByValue()
- Vybere/odznačí možnost, jejíž atribut „value“ odpovídá zadanému parametru.
- Pamatujte, že ne všechny rozbalovací možnosti mají stejný text a „hodnotu“, jako v příkladu níže.
- Parametr: hodnotu atributu „value“.
Příklad:
drpCountry.selectByValue("234");
#3) selectByIndex() a deselectByIndex()
- Vybere/odznačí volbu u daného indexu.
- Parametr: index volby, která má být vybrána.
Příklad:
drpCountry.selectByIndex(0);
#4) isMultiple()
- Vrátí TRUE, pokud rozevírací prvek umožňuje více výběrů najednou; NEPRAVDA, pokud je to jinak.
- Parametr: Nepotřebný
Příklad
if (drpCountry.isMultiple())
{
//do something here
}
#5) deselectAll()
- Vymaže všechny vybrané položky. To platí pouze v případě, že rozevírací prvek podporuje více výběrů.
- Parametr: Nepotřebný
Příklad:
drpCountry.deselectAll();
Kompletní kód vybraných metod v Selenium
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);
Select drpCountry = new Select(driver.findElement(By.name("country")));
drpCountry.selectByVisibleText("ANTARCTICA");
//Selecting Items in a Multiple SELECT elements
driver.get("http://jsbin.com/osebed/2");
Select fruits = new Select(driver.findElement(By.id("fruits")));
fruits.selectByVisibleText("Banana");
fruits.selectByIndex(1);
}
}
Výběr položek ve více prvcích SELECT
Můžeme také použít selectByVisibleText() metoda při výběru více možností v prvku multi SELECT. Jako příklad si uvedeme https://jsbin.com/osebed/2 jako základní URL. Obsahuje rozevírací seznam, který umožňuje více výběrů najednou.
Níže uvedený kód vybere první dvě možnosti pomocí metody selectByVisibleText().
Shrnutí
| Příkaz | Description |
|---|---|
| selectByVisibleText()/
deselectByVisibleText() |
vybere/odznačí volbu podle jejího zobrazeného textu |
| selectByValue()/
deselectByValue() |
vybere/odznačí volbu podle hodnoty jejího atributu „value“. |
| selectByIndex()/
deselectByIndex() |
vybere/odznačí volbu podle jejího indexu |
| isMultiple() | vrátí TRUE, pokud rozevírací prvek umožňuje vícenásobný výběr najednou; NEPRAVDA, pokud je to jinak |
| Odznačit vše() | zruší výběr všech dříve vybraných možností |
Chcete-li ovládat rozevírací seznamy, musíte nejprve importovat balíček org.openqa.selenium.support.ui.Select a poté vytvořit instanci Select.

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