Como selecionar valor no menu suspenso em Selenium
โก Resumo Inteligente
Selecione o valor na lista suspensa. Selenium Utiliza a classe Select dedicada para controlar elementos SELECT do HTML. A classe expรตe os mรฉtodos selectByVisibleText, selectByValue e selectByIndex, que selecionam opรงรตes com precisรฃo e suportam listas suspensas de seleรงรฃo mรบltipla.

O que รฉ a classe Select em Selenium?
O Selecione a turma em Selenium รฉ uma classe auxiliar do org.openqa.selenium.support.ui Pacote que permite ao WebDriver interagir com HTML <select> Elementos. Expรตe mรฉtodos para selecionar e desmarcar opรงรตes por texto visรญvel, valor ou รญndice, e para detectar se uma lista suspensa aceita mรบltiplas seleรงรตes.
Porque Select รฉ um regular Java classe, vocรช cria uma instรขncia com o new palavra-chave e passe o WebElement que aponta para o <select> etiqueta na pรกgina.
Como selecionar o menu suspenso em Selenium
Antes de lidar com uma lista suspensa em SeleniumSรฃo necessรกrios dois passos:
- Importe o pacote org.openqa.selenium.support.ui.Select.
- Instanciar o menu suspenso como um
Selectobjeto em Selenium WebDriver.
Por exemplo, abra o Mercury Pรกgina de inscriรงรฃo de passeios (https://demo.guru99.com/test/newtours/register.php) e localize o menu suspenso โPaรญsโ.
Passo 1) Importe o pacote Select.
import org.openqa.selenium.support.ui.Select;
Etapa 2) Declare o elemento suspenso como uma instรขncia da classe Select. No exemplo abaixo, a instรขncia รฉ nomeada. drpCountry.
Select drpCountry = new Select(driver.findElement(By.name("country")));
Passo 3) Comece a controlar o menu suspenso. Use qualquer mรฉtodo Select para escolher uma opรงรฃo. O exemplo abaixo seleciona โANTรRTIDAโ:
drpCountry.selectByVisibleText("ANTARCTICA");
Selecione Mรฉtodos em Selenium
A classe Select fornece vรกrios mรฉtodos para interagir com opรงรตes de listas suspensas. Os cinco mais comuns sรฃo descritos abaixo.
1) selectByVisibleText() e deselectByVisibleText()
- Seleciona ou desmarca a opรงรฃo cujo texto exibido corresponde ao parรขmetro.
- Parรขmetro: O texto exato exibido para a opรงรฃo.
Exemplo:
drpCountry.selectByVisibleText("ANTARCTICA");
2) selecionarPorValor() e deselecionarPorValor()
- Seleciona ou desmarca a opรงรฃo cujo
valueO atributo corresponde ao parรขmetro. - Observe que o texto exibido e o
valueOs atributos sรฃo frequentemente diferentes, como mostrado abaixo. - Parรขmetro: a opรงรฃo
valueatributo.
Exemplo:
drpCountry.selectByValue("234");
3) selectByIndex() e deselectByIndex()
- Seleciona ou desmarca a opรงรฃo no รญndice especificado. Os รญndices comeรงam em zero.
- Parรขmetro: o รญndice inteiro da opรงรฃo.
Exemplo:
drpCountry.selectByIndex(0);
4) รฉMรบltiplo()
- Returns
TRUEse o menu suspenso permitir vรกrias seleรงรตes ao mesmo tempo, caso contrรกrioFALSE. - Parรขmetro: Nenhum.
Exemplo:
if (drpCountry.isMultiple()) {
// do something here
}
5) deselecionarTudo()
- Limpa todas as opรงรตes selecionadas. Vรกlido apenas em listas suspensas de seleรงรฃo mรบltipla.
- Parรขmetro: Nenhum.
Exemplo:
drpCountry.deselectAll();
Automaรงรฃo Code de Selecionar Mรฉtodos em Selenium
Os seguintes Java O programa demonstra a classe Select em uma lista suspensa de seleรงรฃo รบnica e em uma lista suspensa de seleรงรฃo mรบltipla.
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);
// Single-select drop-down
Select drpCountry = new Select(driver.findElement(By.name("country")));
drpCountry.selectByVisibleText("ANTARCTICA");
// Multi-select drop-down
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 um elemento SELECT mรบltiplo
O selectByVisibleText() Esse mรฉtodo tambรฉm funciona em listas suspensas de seleรงรฃo mรบltipla. Por exemplo, use https://jsbin.com/osebed/2 como a base URLEle exibe um menu suspenso que aceita vรกrias seleรงรตes simultaneamente.
O trecho de cรณdigo abaixo seleciona as duas primeiras opรงรตes usando selectByVisibleText():
Tabela de Referรชncia de Mรฉtodos
Esta tabela resume todos os mรฉtodos da classe Select abordados acima para facilitar a consulta.
| Command | Descriรงรฃo |
|---|---|
| selecionarPorTextoVisรญvel() / deselecionarPorTextoVisรญvel() | Seleciona ou desmarca uma opรงรฃo com base no texto exibido. |
| selecionarPorValor() / deselecionarPorValor() | Seleciona ou desmarca uma opรงรฃo pelo seu value atributo. |
| selecionarPorรndice() / deselecionarPorรndice() | Seleciona ou desmarca uma opรงรฃo com base em seu รญndice (que comeรงa em zero). |
| รฉMรบltiplo() | Retorna VERDADEIRO se a lista suspensa permitir mรบltiplas seleรงรตes, caso contrรกrio, retorna FALSO. |
| desmarcar todos() | Desmarca todas as opรงรตes previamente selecionadas em uma lista suspensa de seleรงรฃo mรบltipla. |
Para controlar as caixas suspensas, importe o org.openqa.selenium.support.ui.Select Primeiro, crie um pacote, depois uma instรขncia de Select e chame qualquer um dos mรฉtodos acima.

.png)
.png)
.png)
.png)