Como selecionar o valor no menu suspenso usando Selenium Driver da Web
Como selecionar o menu suspenso em Selenium
A seguir está um processo passo a passo sobre como selecionar valor no menu suspenso em Selenium:
Antes de lidar com o menu suspenso em Selenium e controlando caixas suspensas, devemos fazer as duas coisas a seguir:
- Importe o pacote org.openqa.selenium.support.ui.Select
- Instanciar a caixa suspensa como um objeto, Selecionar em Selenium webdriver
Como exemplo, vá para Mercury Página de inscrição de passeios (https://demo.guru99.com/test/newtours/register.php) e observe a caixa suspensa “País”.
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 Selenium. O código de exemplo abaixo selecionará a opção “ANTÁRTICA”.
drpCountry.selectByVisibleText("ANTARCTICA");
Selecione a turma em Selenium
O ESB ( Selecione a turma 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
A seguir estão os métodos mais comuns usados em Selenium lista suspensa.
#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:
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 uma caixa suspensa que permite múltiplas seleções ao mesmo tempo.
O código abaixo selecionará as duas primeiras opções usando o método selectByVisibleText().
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 as caixas suspensas, você deve primeiro importar o pacote org.openqa.selenium.support.ui.Select e, em seguida, criar uma instância Select.