Hvordan velge verdi fra rullegardinmenyen Selenium
โก Smart oppsummering
Velg verdi fra rullegardinmenyen i Selenium bruker den dedikerte Select-klassen til รฅ kontrollere HTML SELECT-elementer. Klassen eksponerer selectByVisibleText-, selectByValue- og selectByIndex-metoder som velger alternativer presist og stรธtter rullegardinmenyer for flervalg.

Hva er Select-klassen i Selenium?
Ocuco Velg klasse i Selenium er en hjelpeklasse fra org.openqa.selenium.support.ui pakke som lar WebDriver samhandle med HTML <select> elementer. Den eksponerer metoder for รฅ velge og fjerne valg av alternativer etter synlig tekst, verdi eller indeks, og for รฅ oppdage om en rullegardinmeny godtar flere valg.
Fordi Select er en gjenganger Java klasse, oppretter du en instans med new nรธkkelordet og send WebElementet som peker til <select> tag pรฅ siden.
Hvordan velge dropdown i Selenium
Fรธr du hรฅndterer en rullegardinmeny i Selenium, to trinn er nรธdvendige:
- Importer pakken org.openqa.selenium.support.ui.Select.
- Instantier rullegardinmenyen som en
Selectobjekt i Selenium WebDriver.
Som et eksempel, รฅpne Mercury Registreringsside for turer (https://demo.guru99.com/test/newtours/register.php) og finn rullegardinmenyen ยซLandยป.
Trinn 1) Importer Select-pakken.
import org.openqa.selenium.support.ui.Select;
Trinn 2) Erklรฆr rullegardinelementet som en forekomst av klassen Select. I eksemplet nedenfor er instansen navngitt drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Trinn 3) Begynn รฅ kontrollere rullegardinmenyen. Bruk en hvilken som helst Select-metode for รฅ velge et alternativ. Eksemplet nedenfor velger ยซANTARKTISยป:
drpCountry.selectByVisibleText("ANTARCTICA");
Velg Metoder i Selenium
Select-klassen tilbyr flere metoder for รฅ samhandle med rullegardinalternativer. De fem vanligste er beskrevet nedenfor.
1) selectAyVisibleText() og deselectAyVisibleText()
- Merker eller fjerner merkingen for alternativet der den viste teksten samsvarer med parameteren.
- Parameter: den nรธyaktige teksten som vises for alternativet.
Eksempel:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() og deselectByValue()
- Merker eller fjerner merkingen for alternativet hvis
valueattributtet samsvarer med parameteren. - Merk at den viste teksten og
valueAttributtet er ofte forskjellige, som vist nedenfor. - Parameter: alternativets
valueattributt.
Eksempel:
drpCountry.selectByValue("234");
3) selectByIndex() og deselectByIndex()
- Merker eller fjerner merkingen av alternativet ved den gitte indeksen. Indekser er nullbaserte.
- Parameter: heltallsindeksen til alternativet.
Eksempel:
drpCountry.selectByIndex(0);
4) erMultiple()
- Returer
TRUEhvis rullegardinmenyen tillater flere valg samtidig, ellersFALSE. - Parameter: ingen.
Eksempel:
if (drpCountry.isMultiple()) {
// do something here
}
5) opphev valget av alle()
- Fjerner alle valgte alternativer. Gjelder kun pรฅ rullegardinmenyer med flervalg.
- Parameter: ingen.
Eksempel:
drpCountry.deselectAll();
Komplett Code av utvalgte metoder i Selenium
Fรธlgende Java Programmet demonstrerer Select-klassen pรฅ bรฅde en rullegardinmeny med enkeltvalg og en rullegardinmeny med flere valg.
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);
// Single-select drop-down
Select drpCountry = new Select(driver.findElement(By.name("country")));
drpCountry.selectByVisibleText("ANTARCTICA");
// Multi-select drop-down
driver.get("http://jsbin.com/osebed/2");
Select fruits = new Select(driver.findElement(By.id("fruits")));
fruits.selectByVisibleText("Banana");
fruits.selectByIndex(1);
}
}
Velge elementer i et flertalls SELECT-element
Ocuco selectByVisibleText() Metoden fungerer ogsรฅ pรฅ rullegardinmenyer med flervalg. Bruk for eksempel https://jsbin.com/osebed/2 som base URLDen viser en rullegardinmeny som godtar flere valg samtidig.
Kodeutdraget nedenfor velger de to fรธrste alternativene ved hjelp av selectByVisibleText():
Metodereferansetabell
Denne tabellen oppsummerer alle Select-klasse-metodene som er dekket ovenfor, for rask oppslag.
| Kommando | Tekniske beskrivelser |
|---|---|
| velgMedSynligTekst() / develgMedSynligTekst() | Merker eller opphever merkingen av et alternativ basert pรฅ den viste teksten. |
| velgEtterVerdi() / develgEtterVerdi() | Merker eller fjerner merkingen av et alternativ etter dets value attributt. |
| velgByIndex() / develgByIndex() | Merker eller fjerner merkingen av et alternativ basert pรฅ dets nullbaserte indeks. |
| isMultiple() | Returnerer SANN hvis rullegardinmenyen tillater flere valg, ellers USANN. |
| deselectAll() | Opphever valget av alle tidligere valgte alternativer i en rullegardinmeny med flere valg. |
For รฅ kontrollere rullegardinmenyer, importer org.openqa.selenium.support.ui.Select pakke fรธrst, deretter opprett en Select-instans og kall en av metodene ovenfor.

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