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:
- Importa il pacchetto org.openqa.selenium.support.ui.Select
- 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".
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:
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.
Il codice seguente selezionerà le prime due opzioni utilizzando il metodo selectByVisibleText().
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.