How to Select Value from DropDown using Selenium Webdriver
In this tutorial, we will learn how to handle DropDown in Selenium and Multiple Select Operations.
Select Class in Selenium
The Select Class in Selenium is a method used to implement the HTML SELECT tag. The html select tag provides helper methods to select and deselect the elements. The Select class is an ordinary class so New keyword is used to create its object and it specifies theweb element location
Select Option from Drop-Down Box
Following is a step by step process on how to select value from dropdown in Selenium:
Before handling dropdown in Selenium and controlling drop-down boxes, we must do following two things:
- Import the package org.openqa.selenium.support.ui.Select
- Instantiate the drop-down box as an object, Select in Selenium WebDriver
As an example, go to Mercury Tours’ Registration page (http://demo.guru99.com/test/newtours/register.php
) and notice the “Country” drop-down box there.
Step 1
Import the “Select” package.
Step 2
Declare the drop-down element as an instance of the Select class. In the example below, we named this instance as “drpCountry”.
Step 3
We can now start controlling “drpCountry” by using any of the available Select methods to select dropdown in Selenium. The sample code below will select the option “ANTARCTICA.”
Selecting Items in a Multiple SELECT elements
We can also use the selectByVisibleText() method in selecting multiple options in a multi SELECT element. As an example, we will take https://jsbin.com/osebed/2 as the base URL. It contains a drop-down box that allows multiple selections at a time
The code below will select the first two options using the selectByVisibleText() method.
Select Methods
The following are the most common methods used on Selenium dropdown list.
Method | Description |
---|
selectByVisibleText() and deselectByVisibleText() Example:
| - Selects/deselects the option that displays the text matching the parameter.
- Parameter: The exactly displayed text of a particular option
| selectByValue() and deselectByValue() Example:
| - Selects/deselects the option whose “value” attribute matches the specified parameter.
- Parameter: value of the “value” attribute
- Remember that not all drop-down options have the same text and “value”, like in the example below.
Method | Description |
---|
selectByVisibleText() and deselectByVisibleText() Example:
| - Selects/deselects the option that displays the text matching the parameter.
- Parameter: The exactly displayed text of a particular option
| selectByValue() and deselectByValue() Example:
| - Selects/deselects the option whose “value” attribute matches the specified parameter.
- Parameter: value of the “value” attribute
- Remember that not all drop-down options have the same text and “value”, like in the example below.
| selectByIndex() and deselectByIndex() Example:
| - Selects/deselects the option at the given index.
- Parameter: the index of the option to be selected.
| isMultiple() Example:
| - Returns TRUE if the drop-down element allows multiple selections at a time; FALSE if otherwise.
- No parameters needed
|
deselectAll() Example:
| - Clears all selected entries. This is only valid when the drop-down element supports multiple selections.
- No parameters needed
Here is the complete codepackage 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 = "http://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);
}
} SummaryElement | Command | Description |
---|
Drop-Down Box | selectByVisibleText()/ deselectByVisibleText() | selects/deselects an option by its displayed text | selectByValue()/ deselectByValue() | selects/deselects an option by the value of its “value” attribute | selectByIndex()/ deselectByIndex() | selects/deselects an option by its index | isMultiple() | returns TRUE if the drop-down element allows multiple selection at a time; FALSE if otherwise | deselectAll() | deselects all previously selected options |
To control drop-down boxes, you must first import the org.openqa.selenium.support.ui.Select package and then create a Select instance.
|
|
|
|
Comments