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:

  1. Importar el paquete org.openqa.selenium.support.ui.Select
  2. 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í.

Seleccione Menú desplegable en Selenium

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:

Seleccionar por valor y deseleccionar por valor

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.

Seleccionar elementos en varios elementos de selección

El siguiente código seleccionará las dos primeras opciones utilizando el método selectByVisibleText().

Seleccionar elementos en varios elementos de selección

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.