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:

  1. Importera paketet org.openqa.selenium.support.ui.Select
  2. 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.

Välj Dropdown in Selenium

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:

SelectByValue och avmarkerabyvalue

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.

Välja artiklar i flera markerade element

Koden nedan kommer att välja de två första alternativen med metoden selectByVisibleText().

Välja artiklar i flera markerade element

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.