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:

  1. Importujte balíček org.openqa.selenium.support.ui.Vyberte
  2. 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ě“.

Vyberte Rozbalovací seznam Selenium

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:

SelectByValue a deselectbyvalue

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.

Výběr položek ve více vybraných prvcích

Níže uvedený kód vybere první dvě možnosti pomocí metody selectByVisibleText().

Výběr položek ve více vybraných prvcích

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.