Sådan vælger du værdi fra dropdown-menuen Selenium
⚡ Smart opsummering
Vælg værdi fra rullemenuen i Selenium bruger den dedikerede Select-klasse til at styre HTML SELECT-elementer. Klassen eksponerer selectByVisibleText-, selectByValue- og selectByIndex-metoder, der vælger indstillinger præcist og understøtter rullemenuer med flere valgmuligheder.

Hvad er Select-klassen i Selenium?
Vælg klasse i Selenium er en hjælperklasse fra org.openqa.selenium.support.ui pakke der lader WebDriver interagere med HTML <select> elementer. Den eksponerer metoder til at vælge og fravælge muligheder efter synlig tekst, værdi eller indeks, og til at registrere, om en rullemenu accepterer flere valg.
Fordi Select er en regelmæssig Java klasse, opretter du en instans med new søgeord og videregive WebElementet, der peger på <select> tag på siden.
Sådan vælger du dropdown i Selenium
Før håndtering af en rullemenu i Selenium, to trin er nødvendige:
- Importer pakken org.openqa.selenium.support.ui.Select.
- Instantier rullemenuen som en
Selectobjekt i Selenium WebDriver.
Som et eksempel, åbn Mercury Tours' tilmeldingsside (https://demo.guru99.com/test/newtours/register.php) og find rullemenuen "Land".
Trin 1) Importer Select-pakken.
import org.openqa.selenium.support.ui.Select;
Trin 2) Erklærer rullemenuen som en forekomst af klassen Select. I eksemplet nedenfor er instansen navngivet drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Trin 3) Begynd at styre rullemenuen. Brug en hvilken som helst Select-metode til at vælge en mulighed. Eksemplet nedenfor vælger "ANTARKTIK":
drpCountry.selectByVisibleText("ANTARCTICA");
Vælg metoder i Selenium
Select-klassen tilbyder adskillige metoder til at interagere med dropdown-indstillinger. De fem mest almindelige er beskrevet nedenfor.
1) selectByVisibleText() og deselectByVisibleText()
- Vælger eller fravælger den indstilling, hvis viste tekst matcher parameteren.
- Parameter: den nøjagtige tekst, der vises for indstillingen.
Eksempel:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() og deselectByValue()
- Vælger eller fravælger den indstilling, hvis
valueAttributten matcher parameteren. - Bemærk, at den viste tekst og
valueAttributterne er ofte forskellige, som vist nedenfor. - Parameter: muligheden
valueattribut.
Eksempel:
drpCountry.selectByValue("234");
3) selectByIndex() og deselectByIndex()
- Vælger eller fravælger indstillingen ved det givne indeks. Indekser er nulbaserede.
- Parameter: heltalsindekset for optionen.
Eksempel:
drpCountry.selectByIndex(0);
4) erMultiple()
- Returpolitik
TRUEhvis rullemenuen tillader flere valg på samme tid, ellersFALSE. - Parameter: ingen.
Eksempel:
if (drpCountry.isMultiple()) {
// do something here
}
5) fravælgAlle()
- Rydder alle valgte muligheder. Kun gyldig på rullemenuer med flere valgmuligheder.
- Parameter: ingen.
Eksempel:
drpCountry.deselectAll();
Komplet Code af udvalgte metoder i Selenium
Følgende Java Programmet demonstrerer Select-klassen på både en rullemenu med enkeltvalg og en rullemenu 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);
}
}
Valg af elementer i et multipelt SELECT-element
selectByVisibleText() Metoden fungerer også på rullemenuer med flere valgmuligheder. Brug f.eks. https://jsbin.com/osebed/2 som base URLDen viser en rullemenu, der accepterer flere valg på én gang.
Uddraget nedenfor vælger de to første muligheder ved hjælp af selectByVisibleText():
Metodereferencetabel
Denne tabel opsummerer alle Select-class-metoder, der er dækket ovenfor, for hurtig opslag.
| Kommando | Beskrivelse |
|---|---|
| vælgMedSynligTekst() / fravælgMedSynligTekst() | Vælger eller fravælger en indstilling ud fra dens viste tekst. |
| selectEfterVærdi() / deselectEfterVærdi() | Vælger eller fravælger en indstilling ved hjælp af dens value attribut. |
| vælgEfterIndex() / fravælgEfterIndex() | Vælger eller fravælger en indstilling ud fra dens nulbaserede indeks. |
| erMultiple() | Returnerer SAND, hvis rullemenuen tillader flere valg, ellers FALSK. |
| Fravælg alle() | Fravælger alle tidligere valgte indstillinger på en rullemenu med flere valgmuligheder. |
For at styre rullemenuer skal du importere org.openqa.selenium.support.ui.Select pakke først, opret derefter en Select-instans og kald en af metoderne ovenfor.

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