Come selezionare il valore da DropDown utilizzando Selenium Webdriver

Come selezionare il menu a discesa in Selenium

Di seguito è riportato un processo passo dopo passo su come selezionare il valore dal menu a discesa in Selenium:

Prima di gestire il menu a discesa in Selenium e controllando le caselle a discesa, dobbiamo fare le seguenti due cose:

  1. Importa il pacchetto org.openqa.selenium.support.ui.Select
  2. Crea un'istanza della casella a discesa come un oggetto, seleziona in Selenium webdriver

Ad esempio, vai a Mercury Pagina di registrazione dei tour (https://demo.guru99.com/test/newtours/register.php) e notare la casella a discesa "Paese".

Seleziona A discesa in Selenium

Passaggio 1) Importa il pacchetto "Seleziona".

import org.openqa.selenium.support.ui.Select;

Passaggio 2) Dichiarare l'elemento a discesa come istanza della classe Select.

Nell'esempio seguente, abbiamo denominato questa istanza "drpCountry".

Select drpCountry = new Select(driver.findElement(By.name("country")));

Passaggio 3) Inizia a controllarlo.

Ora possiamo iniziare a controllare "drpCountry" utilizzando uno qualsiasi dei metodi di selezione disponibili per selezionare il menu a discesa Selenium. Il codice di esempio riportato di seguito selezionerà l'opzione "ANTARCTICA".

drpCountry.selectByVisibleText("ANTARCTICA");

Seleziona Classe in Selenium

Il Seleziona Classe in Selenium è un metodo utilizzato per implementare il tag HTML SELECT. Il tag html select fornisce metodi di supporto per selezionare e deselezionare gli elementi. La classe Select è una classe ordinaria, quindi la parola chiave New viene utilizzata per creare il suo oggetto e specifica la posizione dell'elemento web.

Seleziona Metodi in Selenium

Di seguito sono riportati i metodi più comuni utilizzati su Selenium menu `A tendina.

#1) selectByVisibleText() e deselectByVisibleText()

  • Seleziona/deseleziona l'opzione che visualizza il testo corrispondente al parametro.
  • Parametro: Il testo visualizzato esattamente di una particolare opzione

Esempio:

drpCountry.selectByVisibleText("ANTARCTICA");

#2) selectByValue() e deselectByValue()

  • Seleziona/deseleziona l'opzione il cui attributo “valore” corrisponde al parametro specificato.
  • Ricorda che non tutte le opzioni a discesa hanno lo stesso testo e "valore", come nell'esempio seguente.
  • Parametro: valore dell'attributo “value”.

Esempio:

SelectByValue e deselectbyvalue

drpCountry.selectByValue("234");

#3) selectByIndex() e deselectByIndex()

  • Seleziona/deseleziona l'opzione all'indice dato.
  • Parametro: l'indice dell'opzione da selezionare.

Esempio:

drpCountry.selectByIndex(0);

#4) èMultiplo()

  • Restituisce TRUE se l'elemento a discesa consente più selezioni contemporaneamente; FALSE in caso contrario.
  • Parametro: Non necessario

Esempio

if (drpCountry.isMultiple())
{
//do something here
}

#5) deseleziona tutto()

  • Cancella tutte le voci selezionate. Ciò è valido solo quando l'elemento a discesa supporta più selezioni.
  • Parametro: Non necessario

Esempio:

drpCountry.deselectAll();

Codice completo dei metodi selezionati in 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);
 }
}

Selezione di elementi in più elementi SELECT

Possiamo anche usare il selectByVisibleText() metodo per selezionare più opzioni in un elemento multi SELECT. Ad esempio, prenderemo https://jsbin.com/osebed/2 come URL di base. Contiene una casella a discesa che consente selezioni multiple contemporaneamente.

Selezione di elementi in una selezione multipla di elementi

Il codice seguente selezionerà le prime due opzioni utilizzando il metodo selectByVisibleText().

Selezione di elementi in una selezione multipla di elementi

Sommario

Comando Descrizione
selectByVisibleText()/

deselezionaPerVisibleText()

seleziona/deseleziona un'opzione in base al testo visualizzato
selectByValue()/

deselezionaPerValore()

seleziona/deseleziona un'opzione in base al valore del suo attributo "value".
selectPerIndice()/

deselezionaPerIndice()

seleziona/deseleziona un'opzione tramite il suo indice
èMultiplo() restituisce TRUE se l'elemento a discesa consente la selezione multipla alla volta; FALSE in caso contrario
deselezionare tutto() deseleziona tutte le opzioni precedentemente selezionate

Per controllare le caselle a discesa, è necessario prima importare il pacchetto org.openqa.selenium.support.ui.Select e quindi creare un'istanza Select.

Per saperne di più leggi di più