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.