Comment sélectionner une valeur dans la liste déroulante dans Selenium

Comment sélectionner la liste déroulante dans Selenium

Voici un processus étape par étape sur la façon de sélectionner une valeur dans la liste déroulante Selenium:

Avant de gérer la liste déroulante dans Selenium et pour contrôler les listes déroulantes, nous devons faire les deux choses suivantes :

  1. Importer le package org.openqa.selenium.support.ui.Select
  2. Instanciez la liste déroulante en tant qu'objet, sélectionnez dans Selenium pilote web

A titre d'exemple, allez sur Mercury Page d'inscription des visites (https://demo.guru99.com/test/newtours/register.php) et remarquez la liste déroulante « Pays ».

Sélectionnez la liste déroulante dans Selenium

Étape 1) Importez le package « Select ».

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

Étape 2) Déclarez l'élément déroulant en tant qu'instance de la classe Select.

Dans l'exemple ci-dessous, nous avons nommé cette instance « drpCountry ».

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

Étape 3) Commencez à le contrôler.

Nous pouvons maintenant commencer à contrôler « drpCountry » en utilisant l'une des méthodes de sélection disponibles pour sélectionner la liste déroulante dans Selenium. L’exemple de code ci-dessous sélectionnera l’option « ANTARCTIQUE ».

drpCountry.selectByVisibleText("ANTARCTICA");

Sélectionnez la classe dans Selenium

Vue d'ensemble Sélectionnez la classe dans Selenium est une méthode utilisée pour implémenter la balise HTML SELECT. La balise html select fournit des méthodes d'assistance pour sélectionner et désélectionner les éléments. La classe Select est une classe ordinaire, donc le mot-clé New est utilisé pour créer son objet et spécifie l'emplacement de l'élément Web.

Sélectionnez les méthodes dans Selenium

Voici les méthodes les plus courantes utilisées sur Selenium la liste déroulante.

#1) selectByVisibleText() et deselectByVisibleText()

  • Sélectionne/désélectionne l'option qui affiche le texte correspondant au paramètre.
  • Paramètre: Le texte exactement affiché d'une option particulière

Mise en situation :

drpCountry.selectByVisibleText("ANTARCTICA");

#2) selectByValue() et deselectByValue()

  • Sélectionne/désélectionne l’option dont l’attribut « valeur » correspond au paramètre spécifié.
  • N'oubliez pas que toutes les options déroulantes n'ont pas le même texte et la même « valeur », comme dans l'exemple ci-dessous.
  • Paramètre: valeur de l'attribut "value"

Mise en situation :

Sélectionner par valeur et désélectionner par valeur

drpCountry.selectByValue("234");

# 3) selectByIndex() et deselectByIndex()

  • Sélectionne/désélectionne l’option à l’index donné.
  • Paramètre: l'index de l'option à sélectionner.

Mise en situation :

drpCountry.selectByIndex(0);

#4) estMultiple()

  • Renvoie TRUE si l'élément déroulant autorise plusieurs sélections à la fois ; FAUX sinon.
  • Paramètre: Pas besoin

Exemple

if (drpCountry.isMultiple())
{
//do something here
}

#5) désélectionnerTout()

  • Efface toutes les entrées sélectionnées. Ceci n'est valide que lorsque l'élément déroulant prend en charge plusieurs sélections.
  • Paramètre: Pas besoin

Mise en situation :

drpCountry.deselectAll();

Code complet des méthodes de sélection dans 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);
 }
}

Sélection d'éléments dans plusieurs éléments SELECT

Nous pouvons également utiliser le selectByVisibleText() méthode de sélection de plusieurs options dans un élément multi SELECT. A titre d'exemple, nous prendrons https://jsbin.com/osebed/2 comme URL de base. Il contient une liste déroulante qui permet plusieurs sélections à la fois.

Sélection d'éléments dans plusieurs éléments de sélection

Le code ci-dessous sélectionnera les deux premières options à l'aide de la méthode selectByVisibleText().

Sélection d'éléments dans plusieurs éléments de sélection

Résumé

Command Description
selectByVisibleText()/

désélectionnerByVisibleText()

sélectionne/désélectionne une option par son texte affiché
selectByValue()/

désélectionnerByValue()

sélectionne/désélectionne une option par la valeur de son attribut « valeur »
selectByIndex()/

désélectionnerByIndex()

sélectionne/désélectionne une option par son index
estMultiple() renvoie TRUE si l'élément déroulant permet une sélection multiple à la fois ; FAUX sinon
tout déselectionner() désélectionne toutes les options précédemment sélectionnées

Pour contrôler les listes déroulantes, vous devez d'abord importer le package org.openqa.selenium.support.ui.Select, puis créer une instance Select.

En savoir plus Lire la suite