Drop down Select – WebDriver

In web application we see many drop down lists for many input fields (Ex : gender, age, country..etc). This drop down option is different from normal text/numeric input field. It has separate tag in html.

In automation while filling most of the forms we need to fill/select the drop down values also. For achieving this WebDriver has separate class called Select.

In this post we will see what are all different method available in Select class.

Consider below example


ChennaiHyderabadBangalore
 

HTML CODE
<select id=”city”>
<option value=”Op1″>Chennai</option>
<option value=”Op2″>Hyderabad</option>
<option value=”Op3″>Bangalore</option>
</select>

Select an Option
Available methods for selecting an option are

  1. selectByIndex(int index)
  2. selectByValue(java.lang.String value)
  3. selectByVisibleText(java.lang.String text)
selectByIndex(int index)
Select the option at the given index.

Usage :

new Select(driver.findElement(By.id(“city”))).selectByIndex(2);

In above example it will select the Hyderabad because it is in index 2.

selectByValue(java.lang.String value)
Select all options that have a value matching the argument.
Usage :

new Select(driver.findElement(By.id(“city”))).selectByValue(“Op3”);

In above example it will select the Bangalore  based on the value attribute of that option.

selectByVisibleText(java.lang.String text)
Select all options that display text matching the argument.
Usage :

new Select(driver.findElement(By.id(“city”))).selectByVisiableText(“Chennai”);

In above example it will select the Chennai based on the visible text.

De-select an option
Available methods for de-selecting an option(s) are,

  1. deselectAll()
  2. deselectByIndex(int index)
  3. deselectByValue(java.lang.String value)
  4. deselectByVisibleText(java.lang.String text)
deselectAll()
  • Clear all selected entries.
deselectByIndex(int index)
  • Deselect the option at the given index.
deselectByValue(java.lang.String value)
  • Deselect all options that have a value matching the argument.
deselectByVisibleText(java.lang.String text)
  • Deselect all options that display text matching the argument.
 

Getting all options
Some times we may in need to get all the options available in drop down list in that case below method will be useful.

  • getOptions();

getOptions()
It will return All options belonging to this select tag
Usage :

List allCities=new Select(driver.findElement(By.id(“city”))).getOptions();
for(WebElement city:allCities)
{
System.out.println(city.getText());    //It will return the text of each option
System.out.println(city.getAttribute(“value”));    //it will return the value attribute of each option
}

Get Selected Option(s)
If you want to verify whether the proper value got selected in particular drop down list you can make use of below methods.

  1. getFirstSelectedOption();
  2. getAllSelectedOptions() ;
getFirstSelectedOption();
  • The first selected option in this select tag (or the currently selected option in a normal select)

getAllSelectedOptions() ;

  • It will return List of All selected options belonging to this select tag. (This will be useful for multiselect picklist)

Handling multi-select pick list

Chennai Hyderabad Bangalore                  HTML CODE

Chennai
Hyderabad
Bangalore

Handling multi select pick list same as normal drop down( single pick list).
For selecting both Hyderabad, Bangalore option you need to use one of the below logics.

new Select(driver.findElement(By.id(“city”))).selectByIndex(2);
new Select(driver.findElement(By.id(“city”))).selectByIndex(3);
Or
new Select(driver.findElement(By.id(“city”))).selectByvalue(“Op2”);
new Select(driver.findElement(By.id(“city”))).selectByvalue(“Op3”);
Or
new Select(driver.findElement(By.id(“city”))).selectByVisiableText(“Hyderabad”);
new Select(driver.findElement(By.id(“city”))).selectByVisiableText(“Bangalore”);

I hope you understand WebDriver Select class usage in automation.

Happy Selecting 🙂

Regards,
SantoshSarma

Advertisements
This entry was posted in Automation, Select, selenium, WebDriver. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s