Cómo seleccionar un valor del menú desplegable en Selenium
Cómo seleccionar el menú desplegable en Selenium
A continuación se muestra un proceso paso a paso sobre cómo seleccionar un valor del menú desplegable en Selenium:
Antes de manejar el menú desplegable en Selenium y para controlar los cuadros desplegables, debemos hacer las dos cosas siguientes:
- Importar el paquete org.openqa.selenium.support.ui.Select
- Cree una instancia del cuadro desplegable como un objeto, seleccione en Selenium Controlador web
Como ejemplo, vaya a Mercury Página de registro de tours (https://demo.guru99.com/test/newtours/register.php) y observe el cuadro desplegable “País” allí.
Paso 1) Importe el paquete "Seleccionar".
import org.openqa.selenium.support.ui.Select;
Paso 2) Declarar el elemento desplegable como una instancia de la clase Seleccionar.
En el siguiente ejemplo, denominamos esta instancia como "drpCountry".
Select drpCountry = new Select(driver.findElement(By.name("country")));
Paso 3) Empieza a controlarlo.
Ahora podemos comenzar a controlar "drpCountry" utilizando cualquiera de los métodos de selección disponibles para seleccionar el menú desplegable en Selenium. El código de muestra a continuación seleccionará la opción "ANTÁRTICA".
drpCountry.selectByVisibleText("ANTARCTICA");
Seleccione Clase en Selenium
Tu Seleccione Clase en Selenium es un método utilizado para implementar la etiqueta HTML SELECT. La etiqueta de selección html proporciona métodos auxiliares para seleccionar y anular la selección de los elementos. La clase Select es una clase ordinaria, por lo que se utiliza la palabra clave New para crear su objeto y especifica la ubicación del elemento web.
Seleccionar métodos en Selenium
Los siguientes son los métodos más comunes utilizados en Selenium la lista desplegable.
#1) selectByVisibleText() y deseleccionarByVisibleText()
- Selecciona/deselecciona la opción que muestra el texto que coincide con el parámetro.
- Parámetro: El texto que se muestra exactamente de una opción en particular
Ejemplo:
drpCountry.selectByVisibleText("ANTARCTICA");
#2) seleccionarByValue() y deseleccionarByValue()
- Selecciona/deselecciona la opción cuyo atributo “valor” coincide con el parámetro especificado.
- Recuerde que no todas las opciones desplegables tienen el mismo texto y "valor", como en el siguiente ejemplo.
- Parámetro: valor del atributo “valor”
Ejemplo:
drpCountry.selectByValue("234");
#3) seleccionarByIndex() y deseleccionarByIndex()
- Selecciona/deselecciona la opción en el índice dado.
- Parámetro: el índice de la opción a seleccionar.
Ejemplo:
drpCountry.selectByIndex(0);
#4) esMúltiple()
- Devuelve VERDADERO si el elemento desplegable permite múltiples selecciones a la vez; FALSO en caso contrario.
- Parámetro: Innecesario
Ejemplo
if (drpCountry.isMultiple()) { //do something here }
#5) deseleccionar todo()
- Borra todas las entradas seleccionadas. Esto solo es válido cuando el elemento desplegable admite múltiples selecciones.
- Parámetro: Innecesario
Ejemplo:
drpCountry.deselectAll();
Código completo de métodos seleccionados en 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); } }
Seleccionar elementos en varios elementos SELECT
También podemos usar el seleccionarPorTextoVisible() método para seleccionar múltiples opciones en un elemento SELECT múltiple. Como ejemplo, tomaremos https://jsbin.com/osebed/2 como URL base. Contiene un cuadro desplegable que permite realizar múltiples selecciones a la vez.
El siguiente código seleccionará las dos primeras opciones utilizando el método selectByVisibleText().
Resumen
Comando | Descripciones |
---|---|
seleccionarPorTextoVisible()/
deseleccionarByVisibleText() |
Selecciona/deselecciona una opción por el texto que se muestra |
seleccionarPorValor()/
deseleccionarPorValor() |
selecciona/deselecciona una opción por el valor de su atributo “valor” |
seleccionarPorÍndice()/
deseleccionarPorÍndice() |
selecciona/deselecciona una opción por su índice |
esMúltiple() | devuelve VERDADERO si el elemento desplegable permite selección múltiple a la vez; FALSO en caso contrario |
deseleccionar todo() | deselecciona todas las opciones previamente seleccionadas |
Para controlar los cuadros desplegables, primero debe importar el paquete org.openqa.selenium.support.ui.Select y luego crear una instancia de Select.