Cómo seleccionar un valor del menú desplegable en Selenium
⚡ Resumen inteligente
Seleccione un valor del menú desplegable en Selenium Utiliza la clase Select, dedicada a controlar los elementos SELECT de HTML. Esta clase expone los métodos selectByVisibleText, selectByValue y selectByIndex, que permiten seleccionar opciones con precisión y admiten menús desplegables de selección múltiple.
¿Qué es la clase Select en Selenium?
El Seleccione la clase en Selenium es una clase auxiliar de la org.openqa.selenium.support.ui Paquete que permite a WebDriver interactuar con HTML <select> elementos. Expone métodos para seleccionar y deseleccionar opciones por texto visible, valor o índice, y para detectar si un menú desplegable acepta selecciones múltiples.
Gracias Select es un regular Java clase, creas una instancia con la new palabra clave y pasar el WebElement que apunta a la <select> etiqueta en la página.
Cómo seleccionar el menú desplegable en Selenium
Antes de manejar un menú desplegable en SeleniumSe requieren dos pasos:
- Importar el paquete org.openqa.selenium.support.ui.Select.
- Instancie el menú desplegable como un
Selectobjeto en Selenium Controlador web.
Como ejemplo, abra el Mercury Página de registro de tours (https://demo.guru99.com/test/newtours/register.php) y localice el menú desplegable “País”.
Paso 1) Importar el paquete Select.
import org.openqa.selenium.support.ui.Select;
Paso 2) Declare el elemento desplegable como una instancia de la clase Seleccionar. En el ejemplo siguiente, la instancia se llama drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Paso 3) Comience a controlar el menú desplegable. Utilice cualquier método Select para elegir una opción. El ejemplo siguiente selecciona “ANTÁRTIDA”:
drpCountry.selectByVisibleText("ANTARCTICA");
Seleccionar métodos en Selenium
La clase Select proporciona varios métodos para interactuar con las opciones desplegables. Los cinco más comunes se describen a continuación.
1) selectByVisibleText() y deselectByVisibleText()
- Selecciona o deselecciona la opción cuyo texto mostrado coincide con el parámetro.
- Parámetro: el texto exacto que se muestra para la opción.
Ejemplo:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selectByValue() y deselectByValue()
- Selecciona o deselecciona la opción cuya
valueEl atributo coincide con el parámetro. - Tenga en cuenta que el texto mostrado y el
valueLos atributos suelen ser diferentes, como se muestra a continuación. - Parámetro: la opción
valueatributo.
Ejemplo:
drpCountry.selectByValue("234");
3) selectByIndex() y deselectByIndex()
- Selecciona o deselecciona la opción en el índice especificado. Los índices comienzan en cero.
- Parámetro: el índice entero de la opción.
Ejemplo:
drpCountry.selectByIndex(0);
4) esMúltiple()
- Returns
TRUEsi el menú desplegable permite selecciones múltiples al mismo tiempo, de lo contrarioFALSE. - Parámetro: ninguna.
Ejemplo:
if (drpCountry.isMultiple()) {
// do something here
}
5) deseleccionarTodo()
- Borra todas las opciones seleccionadas. Solo válido en menús desplegables de selección múltiple.
- Parámetro: ninguna.
Ejemplo:
drpCountry.deselectAll();
Paquete COMPLETE Code de métodos seleccionados en Selenium
Las siguientes Java El programa muestra cómo usar la clase Select tanto en un menú desplegable de selección única como en uno de selección múltiple.
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);
}
}
Selección de elementos en un elemento SELECT múltiple
El selectByVisibleText() Este método también funciona en menús desplegables de selección múltiple. Como ejemplo, utilice https://jsbin.com/osebed/2 como la base URLMuestra un menú desplegable que permite seleccionar varias opciones a la vez.
El fragmento a continuación selecciona las dos primeras opciones usando selectByVisibleText():
Tabla de referencia del método
Esta tabla resume todos los métodos de la clase Select que se han tratado anteriormente para una consulta rápida.
| Comando | Mareas Ideales para Lecciones |
|---|---|
| seleccionarPorTextoVisible() / deseleccionarPorTextoVisible() | Selecciona o deselecciona una opción según el texto que se muestra en ella. |
| seleccionarPorValor() / deseleccionarPorValor() | Selecciona o deselecciona una opción por su value atributo. |
| seleccionarPorÍdeno() / deseleccionarPorÍdeno() | Selecciona o deselecciona una opción mediante su índice basado en cero. |
| esMúltiple() | Devuelve VERDADERO si el menú desplegable permite selecciones múltiples, de lo contrario, FALSO. |
| deseleccionar todo() | Deselecciona todas las opciones seleccionadas previamente en un menú desplegable de selección múltiple. |
Para controlar los cuadros desplegables, importe el org.openqa.selenium.support.ui.Select Primero, empaquete la clase, luego cree una instancia de Select y llame a cualquiera de los métodos anteriores.


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