Come selezionare il valore dal menu a discesa in Selenium
โก Riepilogo intelligente
Seleziona il valore dal menu a tendina in Selenium Utilizza la classe Select dedicata per controllare gli elementi SELECT HTML. La classe espone i metodi selectByVisibleText, selectByValue e selectByIndex che selezionano le opzioni con precisione e supportano i menu a tendina a selezione multipla.

Che cos'รจ la classe Select in Selenium?
Migliori Seleziona la classe in Selenium รจ una classe di supporto di org.openqa.selenium.support.ui pacchetto che consente a WebDriver di interagire con HTML <select> elementi. Espone metodi per selezionare e deselezionare le opzioni in base al testo visibile, al valore o all'indice, e per rilevare se un menu a tendina accetta selezioni multiple.
Perchรฉ Select รจ un normale Java classe, crei un'istanza con la new parola chiave e passa il WebElement che punta al <select> tag sulla pagina.
Come selezionare il menu a discesa in Selenium
Prima di gestire un menu a tendina in Selenium, sono necessari due passaggi:
- Importa il pacchetto org.openqa.selenium.support.ui.Select.
- Istanzia il menu a tendina come un
Selectoggetto in Selenium WebDriver.
Ad esempio, apri il Mercury Pagina di registrazione dei tour (https://demo.guru99.com/test/newtours/register.php) e individuare il menu a tendina โPaeseโ.
Passaggio 1) Importare il pacchetto Select.
import org.openqa.selenium.support.ui.Select;
Passaggio 2) Dichiarare l'elemento a discesa come istanza della classe Select. Nell'esempio seguente, l'istanza รจ denominata drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Passaggio 3) Inizia a controllare il menu a tendina. Utilizza un qualsiasi metodo Select per scegliere un'opzione. L'esempio seguente seleziona "ANTARTIDE":
drpCountry.selectByVisibleText("ANTARCTICA");
Seleziona Metodi in Selenium
La classe Select offre diversi metodi per interagire con le opzioni dei menu a tendina. I cinque piรน comuni sono descritti di seguito.
1) selectByVisibleText() e deselectByVisibleText()
- Seleziona o deseleziona l'opzione il cui testo visualizzato corrisponde al parametro.
- Parametro: il testo esatto visualizzato per l'opzione.
Esempio:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() e deselectByValue()
- Seleziona o deseleziona l'opzione il cui
valuel'attributo corrisponde al parametro. - Nota che il testo visualizzato e il
valueGli attributi sono spesso diversi, come mostrato di seguito. - Parametro: l'opzione
valueattributo.
Esempio:
drpCountry.selectByValue("234");
3) selectByIndex() e deselectByIndex()
- Seleziona o deseleziona l'opzione all'indice specificato. Gli indici partono da zero.
- Parametro: l'indice intero dell'opzione.
Esempio:
drpCountry.selectByIndex(0);
4) isMultiple()
- Resi
TRUEse il menu a tendina consente selezioni multiple contemporaneamente, altrimentiFALSE. - Parametro: nessuna.
Esempio:
if (drpCountry.isMultiple()) {
// do something here
}
5) deselezionaTutto()
- Deseleziona tutte le opzioni selezionate. Valido solo per i menu a tendina a selezione multipla.
- Parametro: nessuna.
Esempio:
drpCountry.deselectAll();
Completato Code di metodi selezionati in Selenium
Le seguenti Java Il programma dimostra l'utilizzo della classe Select sia per un menu a tendina a selezione singola che per un menu a tendina a selezione multipla.
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);
}
}
Selezione di elementi in un elemento SELECT multiplo
Migliori selectByVisibleText() Il metodo funziona anche sui menu a tendina a selezione multipla. Ad esempio, utilizzare https://jsbin.com/osebed/2 come base URL. Presenta un menu a tendina che accetta selezioni multiple contemporaneamente.
Il frammento seguente seleziona le prime due opzioni utilizzando selectByVisibleText():
Tabella di riferimento del metodo
Questa tabella riassume tutti i metodi della classe Select descritti in precedenza, per una consultazione rapida.
| Comando | Descrizione |
|---|---|
| selectByVisibleText() / deselectByVisibleText() | Consente di selezionare o deselezionare un'opzione in base al testo visualizzato. |
| selectByValue() / deselectByValue() | Seleziona o deseleziona un'opzione tramite il suo value attributo. |
| selectByIndex() / deselectByIndex() | Seleziona o deseleziona un'opzione tramite il suo indice a base zero. |
| รจMultiplo() | Restituisce TRUE se il menu a tendina consente selezioni multiple, altrimenti FALSE. |
| deselezionare tutto() | Deseleziona tutte le opzioni precedentemente selezionate in un menu a tendina a selezione multipla. |
Per controllare le caselle a discesa, importare il org.openqa.selenium.support.ui.Select prima di tutto, crea un pacchetto, poi crea un'istanza di Select e chiama uno qualsiasi dei metodi sopra descritti.

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