Como selecionar o valor no menu suspenso usando Selenium Webdriver

Como selecionar o menu suspenso no Selenium

Following é um processo passo a passo sobre como selecionar o valor no menu suspenso no Selenium:

Antes de lidar com o menu suspenso no Selenium e controlar o menu suspenso boxsim, devemos fazer o seguintewing duas coisas:

  1. Importe o pacote org.openqa.selenium.support.ui.Select
  2. Instancie o menu suspenso box como um objeto, selecione no Selenium WebDriver

Por exemplo, vá para a página de registro da Mercury Tours (https://demo.guru99.com/test/newtours/register.php) e observe o menu suspenso “País” box lá.

Selecione o menu suspenso no Selenium

Passo 1) Importe o pacote “Select”.

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

Etapa 2) Declarar o elemento suspenso como uma instância da classe Select.

No exemplo abaixo, nomeamos esta instância como “drpCountry”.

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

Etapa 3) Comece a controlá-lo.

Agora podemos começar a controlar “drpCountry” usando qualquer um dos métodos Select disponíveis para selecionar o menu suspenso no Selenium. O código de exemplo abaixo selecionará a opção “ANTÁRTICA”.

drpCountry.selectByVisibleText("ANTARCTICA");

Selecione a classe em Selenium

A Selecione a classe em Selenium é um método usado para implementar a tag HTML SELECT. A tag html select fornece métodos auxiliares para selecionar e desmarcar os elementos. A classe Select é uma classe comum, então a palavra-chave New é usada para criar seu objeto e especifica a localização do elemento da web.

Selecione métodos em Selenium

O seguintewing são os métodos mais comuns usados ​​na lista suspensa do Selenium.

#1) selectByVisibleText() e deselectByVisibleText()

  • Marca/desmarca a opção que exibe o texto correspondente ao parâmetro.
  • Parâmetro: O texto exibido exatamente de uma opção específica

Exemplo:

drpCountry.selectByVisibleText("ANTARCTICA");

#2) selectByValue() e deselectByValue()

  • Seleciona/desmarca a opção cujo atributo “valor” corresponde ao parâmetro especificado.
  • Lembre-se de que nem todas as opções suspensas possuem o mesmo texto e “valor”, como no exemplo abaixo.
  • Parâmetro: valor do atributo “valor”

Exemplo:

SelectByValue e deselectbyvalue

drpCountry.selectByValue("234");

#3) selectByIndex() e deselectByIndex()

  • Marca/desmarca a opção no índice fornecido.
  • Parâmetro: o índice da opção a ser selecionada.

Exemplo:

drpCountry.selectByIndex(0);

#4) éMúltiplo()

  • Retorna TRUE se o elemento suspenso permitir múltiplas seleções ao mesmo tempo; FALSO caso contrário.
  • Parâmetro: Não é necessário

Exemplo

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

# 5) desmarcar tudo ()

  • Limpa todas as entradas selecionadas. Isso só é válido quando o elemento suspenso oferece suporte a seleções múltiplas.
  • Parâmetro: Não é necessário

Exemplo:

drpCountry.deselectAll();

Código completo de métodos selecionados em 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);
 }
}

Selecionando itens em vários elementos SELECT

Também podemos usar o selectByVisibleText() método na seleção de múltiplas opções em um elemento multi SELECT. Como exemplo, tomaremos https://jsbin.com/osebed/2 como o URL base. Ele contém um menu suspenso box que permite múltiplas seleções ao mesmo tempo.

Selecionando itens em vários elementos de seleção

O código abaixo selecionará as duas primeiras opções usando o método selectByVisibleText().

Selecionando itens em vários elementos de seleção

Resumo

Command Descrição
selectByVisibleText()/

desmarcarByVisibleText()

seleciona/desmarca uma opção pelo texto exibido
selecioneByValue()/

desmarcarByValue()

seleciona/desmarca uma opção pelo valor de seu atributo “valor”
selectByIndex()/

desmarcarByIndex()

seleciona/desmarca uma opção pelo seu índice
éMúltiplo() retorna TRUE se o elemento suspenso permitir seleção múltipla por vez; FALSO caso contrário
desmarcar todos() desmarca todas as opções selecionadas anteriormente

Para controlar o menu suspenso boxes, você deve primeiro importar o pacote org.openqa.selenium.support.ui.Select e, em seguida, criar uma instância Select.