Sådan vælger du værdi fra dropdown-menuen Selenium

Sådan vælger du dropdown i Selenium

Følgende er en trin for trin-proces om, hvordan du vælger værdi fra dropdown-menuen Selenium:

Før håndtering af dropdown-ind Selenium og kontrollerende rullemenuer, skal vi gøre følgende to ting:

  1. Importer pakken org.openqa.selenium.support.ui.Select
  2. Instantiér rullemenuen som et objekt, Vælg i Selenium webdriver

Gå som eksempel til Mercury Tours' tilmeldingsside (https://demo.guru99.com/test/newtours/register.php) og læg mærke til rullemenuen "Land" der.

Vælg Dropdown in Selenium

Trin 1) Importer "Vælg"-pakken.

import org.openqa.selenium.support.ui.Select;

Trin 2) Erklærer rullemenuen som en forekomst af klassen Select.

I eksemplet nedenfor navngav vi denne instans som "drpCountry".

Select drpCountry = new Select(driver.findElement(By.name("country")));

Trin 3) Begynd at kontrollere det.

Vi kan nu begynde at kontrollere "drpCountry" ved at bruge en af ​​de tilgængelige Select-metoder til at vælge dropdown i Selenium. Eksempelkoden nedenfor vil vælge muligheden "ANTARCTICA."

drpCountry.selectByVisibleText("ANTARCTICA");

Vælg Klasse i Selenium

Vælg Klasse i Selenium er en metode, der bruges til at implementere HTML SELECT-tagget. HTML select tag giver hjælpemetoder til at vælge og fravælge elementerne. Select-klassen er en almindelig klasse, så Nyt nøgleord bruges til at oprette dets objekt, og det angiver webelementets placering.

Vælg metoder i Selenium

Følgende er de mest almindelige metoder, der bruges på Selenium dropdown liste.

#1) selectByVisibleText() og deselectByVisibleText()

  • Vælger/fravælger den indstilling, der viser den tekst, der matcher parameteren.
  • Parameter: Den nøjagtige viste tekst for en bestemt indstilling

Eksempel:

drpCountry.selectByVisibleText("ANTARCTICA");

#2) selectByValue() og deselectByValue()

  • Vælger/fravælger den indstilling, hvis "værdi"-attribut matcher den angivne parameter.
  • Husk, at ikke alle rullemenuer har samme tekst og "værdi", som i eksemplet nedenfor.
  • Parameter: værdien af ​​"værdi"-attributten

Eksempel:

SelectByValue og fravælgbyvalue

drpCountry.selectByValue("234");

#3) selectByIndex() og deselectByIndex()

  • Vælger/fravælger muligheden ved det givne indeks.
  • Parameter: indekset for den mulighed, der skal vælges.

Eksempel:

drpCountry.selectByIndex(0);

#4) erMultiple()

  • Returnerer TRUE, hvis rullemenuen tillader flere valg ad gangen; FALSK hvis andet.
  • Parameter: Ikke brug for

Eksempel

if (drpCountry.isMultiple())
{
//do something here
}

#5) fravælg Alle()

  • Rydder alle valgte poster. Dette er kun gyldigt, når rullemenuen understøtter flere valg.
  • Parameter: Ikke brug for

Eksempel:

drpCountry.deselectAll();

Komplet kode for udvalgte metoder i 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);
 }
}

Valg af elementer i flere SELECT-elementer

Vi kan også bruge selectByVisibleText() metode til at vælge flere muligheder i et multi SELECT-element. Som eksempel vil vi tage https://jsbin.com/osebed/2 som basis-URL. Den indeholder en rullemenu, der tillader flere valg ad gangen.

Valg af elementer i flere udvalgte elementer

Koden nedenfor vil vælge de første to muligheder ved hjælp af selectByVisibleText() metoden.

Valg af elementer i flere udvalgte elementer

Resumé

Kommando Beskrivelse
selectByVisibleText()/

deselectByVisibleText()

vælger/fravælger en indstilling efter dens viste tekst
selectByValue()/

deselectByValue()

vælger/fravælger en indstilling med værdien af ​​dens "værdi"-attribut
selectByIndex()/

deselectByIndex()

vælger/fravælger en indstilling ved dens indeks
erMultiple() returnerer TRUE, hvis rullemenuen tillader flere valg ad gangen; FALSK hvis andet
Fravælg alle() fravælger alle tidligere valgte muligheder

For at kontrollere rullemenuer skal du først importere org.openqa.selenium.support.ui.Select-pakken og derefter oprette en Select-instans.

Opsummer dette indlæg med: