Hur man väljer värde från rullgardinsmenyn Selenium
⚡ Smart sammanfattning
Välj värde från rullgardinsmenyn i Selenium använder den dedikerade Select-klassen för att styra HTML SELECT-element. Klassen exponerar metoderna selectByVisibleText, selectByValue och selectByIndex som väljer alternativ exakt och stöder rullgardinsmenyer för flerval.

Vad är Select-klassen i Selenium?
Ocuco-landskapet Välj klass i Selenium är en hjälpklass från org.openqa.selenium.support.ui paket som låter WebDriver interagera med HTML <select> element. Den exponerar metoder för att markera och avmarkera alternativ efter synlig text, värde eller index, och för att upptäcka om en rullgardinsmeny accepterar flera val.
Därför att Select är en regelbunden Java klassen, skapar du en instans med new nyckelordet och skicka WebElementet som pekar på <select> taggen på sidan.
Hur man väljer dropdown i Selenium
Innan du hanterar en rullgardinsmeny i Selenium, två steg krävs:
- Importera paketet org.openqa.selenium.support.ui.Select.
- Instansiera rullgardinsmenyn som en
Selectobjekt i Selenium WebDriver.
Som ett exempel, öppna Mercury Tours registreringssida (https://demo.guru99.com/test/newtours/register.php) och leta reda på rullgardinsmenyn ”Land”.
Steg 1) Importera Select-paketet.
import org.openqa.selenium.support.ui.Select;
Steg 2) Deklarera rullgardinselementet som en instans av klassen Select. I exemplet nedan heter instansen drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Steg 3) Börja styra rullgardinsmenyn. Använd valfri Select-metod för att välja ett alternativ. Exemplet nedan väljer "ANTARKTIKA":
drpCountry.selectByVisibleText("ANTARCTICA");
Välj Metoder i Selenium
Klassen Select erbjuder flera metoder för att interagera med rullgardinsmenyer. De fem vanligaste beskrivs nedan.
1) selectByVisibleText() och deselectByVisibleText()
- Markerar eller avmarkerar det alternativ vars visade text matchar parametern.
- Parameter: den exakta texten som visas för alternativet.
Exempel:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() och deselectByValue()
- Markerar eller avmarkerar det alternativ vars
valueattributet matchar parametern. - Observera att den visade texten och
valueAttributen är ofta olika, som visas nedan. - Parameter: alternativets
valueattribut.
Exempel:
drpCountry.selectByValue("234");
3) selectByIndex() och deselectByIndex()
- Markerar eller avmarkerar alternativet vid det angivna indexet. Index är nollbaserade.
- Parameter: heltalsindex för alternativet.
Exempel:
drpCountry.selectByIndex(0);
4) ärMultiple()
- Returer
TRUEom rullgardinsmenyn tillåter flera val samtidigt, annarsFALSE. - Parameter: ingen.
Exempel:
if (drpCountry.isMultiple()) {
// do something here
}
5) avmarkeraAlla()
- Rensar alla valda alternativ. Gäller endast i rullgardinsmenyer med flera val.
- Parameter: ingen.
Exempel:
drpCountry.deselectAll();
Komplett Code av valda metoder i Selenium
Följande Java Programmet demonstrerar Select-klassen på både en enkelvals- och en flervals-rullgardinsmeny.
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);
}
}
Markera objekt i ett multipelt SELECT-element
Ocuco-landskapet selectByVisibleText() Metoden fungerar även på rullgardinsmenyer med flera val. Använd till exempel https://jsbin.com/osebed/2 som bas URLDen visar en rullgardinsmeny som accepterar flera val samtidigt.
Utdraget nedan väljer de två första alternativen med hjälp av selectByVisibleText():
Metodreferenstabell
Den här tabellen sammanfattar alla Select-class-metoder som behandlats ovan för snabb sökning.
| Kommando | BESKRIVNING |
|---|---|
| selectAyVisibleText() / deselectAyVisibleText() | Markerar eller avmarkerar ett alternativ baserat på dess visade text. |
| selectAvVärde() / deselectAvVärde() | Markerar eller avmarkerar ett alternativ genom att value attribut. |
| selectAvIndex() / deselectAvIndex() | Markerar eller avmarkerar ett alternativ baserat på dess nollbaserade index. |
| isMultiple() | Returnerar SANT om rullgardinsmenyn tillåter flera val, annars FALSKT. |
| avmarkera alla() | Avmarkerar alla tidigare valda alternativ i en rullgardinsmeny med flera val. |
För att styra listrutor, importera org.openqa.selenium.support.ui.Select paketera först, skapa sedan en Select-instans och anropa någon av metoderna ovan.

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