Cómo usar listas desplegables con Selenium WebDriver

Cómo seleccionar una opción en un Dropdown List usando

En este tutorial, aprenderemos a manejar las operaciones con listas desplegables y selección múltiple con selenium webdriver.

Lista desplegable/Drop-Down List

Antes de poder controlar las listas desplegables, debemos hacer las siguientes dos cosas:

  1. Importar el paquete org.openqa.selenium.support.ui.Select
  2. Instanciar la lista desplegable como un objeto «Select» con webdriver

Como ejemplo, en la página de registro de Mercury Tours. Página que tendremos como material para los ejemplos. Observe el cuadro desplegable «Country» que se encuentra allí.

Nota: Recuerda que para obtener el atributo por el cual vamos a localizar el elemento se puede hacer uso del Inspeccionador de elementos del navegador o con Firebug.

También te recomiendo visitar si aún no lo has hecho Localizar elementos con Selenium WebDriver

objetos select selenium

Paso 1.

Importar el paquete Select perteneciente a selenium

import org.openqa.selenium.support.ui.Select;

Paso 2.

Declare la lista desplegable como una instancia de la clase Select. En el ejemplo siguiente, nombramos a esta instancia como «drpCountry».

Select drpCountry = new Select (driver.findElement(By.name("country")));

Paso 3.

Ahora podemos empezar a controlar «drpCountry» utilizando cualquiera de los métodos de selección disponibles. El código de ejemplo a continuación seleccionará la opción «Antártida».

drpCountry.selectByVisibleText("ANTARCTICA");

Selección de elementos en varios elementos SELECT

También podemos usar el método selectByVisibleText() para seleccionar varias opciones en un elemento multi Select. A modo de ejemplo, tomaremos http://jsbin.com/osebed/2 como la URL base. En el ejemplo tendremos un cuadro desplegable que permite varias selecciones a la vez.

select_elements_selenium

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

public static void main (String[] args) {
      WebDriver driver = new FirefoxDriver();
      driver.get("http://jsbin.com/osebed/2");
      Select fruits = new Select (driver.findElement(By.id("fruits")));
      fruits.selectByVisibleText("Banana");
      fruits.selectByIndex(1);
}

How to Select Option from DropDown using Selenium Webdriver

Métodos de la clase Select

Los siguientes son los métodos más comunes utilizados en los elementos desplegables.

Método Descripción
selectByVisibleText() and deselectByVisibleText() Ejemplo:How to Select Option from DropDown using Selenium Webdriver
  • Selecciona/anula la selección de la opción que muestra el texto que coincide con el parámetro.
  • Parámetro: El texto exactamente mostrado de una opción particular.
selectByValue() and deselectByValue() Ejemplo:How to Select Option from DropDown using Selenium Webdriver
  • Selecciona/deselecciona la opción cuyo atributo «Value» coincide con el parámetro especificado.
  • Parámetro: valor del atributo «value».
  • Recuerde que no todas las opciones desplegables tienen el mismo texto y «valor», como en el ejemplo siguiente.

How to Select Option from DropDown using Selenium Webdriver

selectByIndex() and deselectByIndex() Ejemplo:How to Select Option from DropDown using Selenium Webdriver
  • Selecciona/deselecciona la opción del index dado.
  • Parámetro: El índice de la opción que se desea seleccionar.
isMultiple() Ejemplo: How to Select Option from DropDown using Selenium Webdriver
  • Devuelve TRUE si el elemento desplegable permite varias selecciones a la vez; FALSE si no es así.
  • No necesita parámetros
deselectAll() Ejemplo: How to Select Option from DropDown using Selenium Webdriver
  • Borra todas las entradas seleccionadas. Esto sólo es válido cuando el elemento desplegable admite varias selecciones.
  • No necesita parámetros 

Aquí está todo el código completo

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.firefox.marionette","C:\\geckodriver.exe");
      String baseURL = "http://demo.guru99.com/selenium/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);
 }
}

Resumen

Para controlar las listas desplegables, primero debe importar el paquete org.openqa.selenium.support.ui.Select y, a continuación, crear una instancia de selección.

Continúa visitando nuestros Tutoriales de Selenium WebDriver y hasta un experto cada día más. Si quieres que tratemos algún tema en especifico no dudes en ponerlo en los comentarios.

Compartir artículo

6 Comments

  1. anderson

    Responder

    buenas tardes me gustaria saber como puedo validar si hay una opcion especifica presente en la lista desplegable o como recorrer todas las opciones y extraer el texto de todas

    • julianlujan1

      Responder

      Muy buenas tardes Anderson, para obtener todas las opciones, recorrerlas y obtener el texto te puedes apoyar del comando findelements.
      Tomando como ejemplo la url del articulo http://output.jsbin.com/osebed/2

      WebElement select = driver.findElement(By.id(«fruits»));
      List options = select.findElements(By.tagName(«option»));
      for (WebElement option : options) {
      System.out.println(option.getText())
      }

      Cualquier otra duda, con gusto te colaboro

    • julianlujan1

      Responder

      Hola Sebastian,

      Puedes hacer uso de la expresión «text()» junto con el localizador xpath para encontrar el WebElement span que tenga el texto que deseas y luego darle clic o hacer alguna acción. Para aprender a usar esta expresión puedes visitar XPath en Selenium WebDriver: Tutorial completo
      Si puedes adjuntar el html de la pagina, te podemos ayudar aún más.

Leave Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.