Hur man väljer värde från DropDown med Selenium Webdriver
Hur man väljer dropdown i Selenium
Följande är en steg-för-steg-process om hur du väljer värde från rullgardinsmenyn Selenium:
Innan du hanterar dropdown in Selenium och kontrollera rullgardinsrutorna måste vi göra följande två saker:
- Importera paketet org.openqa.selenium.support.ui.Select
- Instantiera rullgardinsmenyn som ett objekt, Välj in Selenium webbdrivrutin
Som ett exempel, gå till Mercury Tours registreringssida (https://demo.guru99.com/test/newtours/register.php) och notera rullgardinsmenyn "Land" där.
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 döpte vi den här instansen till "drpCountry".
Select drpCountry = new Select(driver.findElement(By.name("country")));
Steg 3) Börja kontrollera det.
Vi kan nu börja kontrollera "drpCountry" genom att använda någon av de tillgängliga Välj-metoderna för att välja dropdown-menyn Selenium. Exempelkoden nedan kommer att välja alternativet "ANTARCTICA."
drpCountry.selectByVisibleText("ANTARCTICA");
Välj Klass i Selenium
Smakämnen Välj Klass i Selenium är en metod som används för att implementera HTML SELECT-taggen. HTML select-taggen tillhandahåller hjälpmetoder för att välja och avmarkera elementen. Klassen Select är en vanlig klass så Nytt nyckelord används för att skapa dess objekt och det anger webbelementets plats.
Välj Metoder i Selenium
Följande är de vanligaste metoderna som används på Selenium listrutan.
#1) selectByVisibleText() och deselectByVisibleText()
- Väljer/avmarkerar alternativet som visar texten som matchar parametern.
- Parameter: Den exakt visade texten för ett visst alternativ
Exempelvis:
drpCountry.selectByVisibleText("ANTARCTICA");
#2) selectByValue() och deselectByValue()
- Väljer/avmarkerar alternativet vars "värde"-attribut matchar den angivna parametern.
- Kom ihåg att inte alla rullgardinsalternativ har samma text och "värde", som i exemplet nedan.
- Parameter: värdet för attributet "värde".
Exempelvis:
drpCountry.selectByValue("234");
#3) selectByIndex() och deselectByIndex()
- Väljer/avmarkerar alternativet vid det givna indexet.
- Parameter: indexet för det alternativ som ska väljas.
Exempelvis:
drpCountry.selectByIndex(0);
#4) isMultiple()
- Returnerar TRUE om rullgardinselementet tillåter flera val samtidigt; FALSK om annat.
- Parameter: Behövs inte
Exempelvis
if (drpCountry.isMultiple()) { //do something here }
#5) avmarkeraAlla()
- Raderar alla valda poster. Detta är endast giltigt när rullgardinselementet stöder flera val.
- Parameter: Behövs inte
Exempelvis:
drpCountry.deselectAll();
Komplett kod för valda 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); } }
Välja objekt i flera SELECT-element
Vi kan också använda selectByVisibleText() metod för att välja flera alternativ i ett multi SELECT-element. Som exempel ska vi ta https://jsbin.com/osebed/2 som bas-URL. Den innehåller en rullgardinsmeny som tillåter flera val samtidigt.
Koden nedan kommer att välja de två första alternativen med metoden selectByVisibleText().
Sammanfattning
Kommando | Description |
---|---|
selectByVisibleText()/
deselectByVisibleText() |
markerar/avmarkerar ett alternativ efter dess visade text |
selectByValue()/
deselectByValue() |
väljer/avmarkerar ett alternativ med värdet av dess "värde"-attribut |
selectByIndex()/
deselectByIndex() |
väljer/avmarkerar ett alternativ efter dess index |
isMultiple() | returnerar TRUE om rullgardinselementet tillåter flera val åt gången; FALSK om annat |
avmarkera alla() | avmarkerar alla tidigare valda alternativ |
För att styra listrutorna måste du först importera org.openqa.selenium.support.ui.Select-paketet och sedan skapa en Select-instans.