In this section, you will learn how to handle drop-downs in Selenium WebDriver.
Before proceeding with this section, let us first understand some of the basics of handling drop-downs in Selenium WebDriver.
The 'Select' class in Selenium WebDriver is used for selecting and deselecting option in a dropdown. The objects of Select type can be initialized by passing the dropdown webElement as parameter to its constructor.
WebElement testDropDown = driver.findElement(By.id("testingDropdown"));
Select dropdown = new Select(testDropDown);How to select an option from drop-down menu?
WebDriver provides three ways to select an option from the drop-down menu.
1. selectByIndex - It is used to select an option based on its index, beginning with 0.
dropdown.selectByIndex(5);
2. selectByValue - It is used to select an option based on its 'value' attribute.
dropdown.selectByValue("Database");3. selectByVisibleText - It is used to select an option based on the text over the option.
dropdown.selectByVisibleText("Database Testing");Let us consider a test case in which we will automate the following scenarios:
We will create our test case step by step in order to give you a complete understanding of how to handle drop-downs in WebDriver.
Step1. Launch Eclipse IDE and open the existing test suite "Demo_Test" which we have created in earlier sessions of this tutorial.
Step2. Right click on the "src" folder and create a new Class File from New > Class.
Give your Class name as "Dropdwn_Test" and click on "Finish" button.
Step3. Let's get to the coding ground.
Here is the sample code to set system property for Chrome driver:
// System Property for Chrome Driver
System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");Here is the sample code to initialize Chrome driver using ChromeDriver class.
// Instantiate a ChromeDriver class. WebDriver driver=new ChromeDriver();
Combining both of the above code blocks, we will get the code snippet to launch Google Chrome browser.
// System Property for Chrome Driver
System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");
// Instantiate a ChromeDriver class.
WebDriver driver=new ChromeDriver();Here is the sample code to navigate to the desired URL:
// Launch Website
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");The complete code till now will look something like this:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Partial_Link {
public static void main(String[] args) {
// System Property for Chrome Driver
System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");
// Instantiate a ChromeDriver class.
WebDriver driver=new ChromeDriver();
// Launch Website
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");
}
}Step4.Now we will try to locate the drop-down menu by inspecting its HTML codes.
Follow the steps given below to locate the drop-down menu on the sample web page.
Step5. To automate our third test scenario, we need to write the code which will select the option "Database Testing" from the drop-down menu.
Here is the sample code to so that:
//Using Select class for selecting value from dropdown
Select dropdown = new Select(driver.findElement(By.id("testingDropdown")));
dropdown.selectByVisibleText("Database Testing");
Thus, our final test script will look something like this:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
public class Dropdwn_Test {
public static void main(String[] args) {
// System Property for Chrome Driver
System.setProperty("webdriver.chrome.driver","D:\\ChromeDriver\\chromedriver.exe");
// Instantiate a ChromeDriver class.
WebDriver driver=new ChromeDriver();
// Launch Website
driver.navigate().to("https://www.testandquiz.com/selenium/testing.html");
//Using Select class for selecting value from dropdown
Select dropdown = new Select(driver.findElement(By.id("testingDropdown")));
dropdown.selectByVisibleText("Database Testing");
// Close the Browser
driver.close();
}
}The following screenshot shows the Eclipse window for our test script.
Step6. Right click on the Eclipse code and select Run As > Java Application.
Upon execution, the above test script will launch the Chrome browser and automate all the test scenarios.