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:
- Importer pakken org.openqa.selenium.support.ui.Select
- 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.
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:
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.
Koden nedenfor vil vælge de første to muligheder ved hjælp af selectByVisibleText() metoden.
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.

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