How to test Dropdowns
Introduction
A dropdown element allows a user to select one or more options from a limited set of choices.
In web applications, there are 2 types of dropdowns:
- Classic Dropdowns
- Modern Dropdowns
1. Classic Dropdowns
A classic dropdown is a <select> element, with <option> elements inside.
This is what the HTML of a <select> dropdown looks like:
<select name="pets" id="pets">
<option value="cat">Cat</option>
<option value="dog">Dog</option>
<option value="rabbit">Rabbit</option>
</select>
The best way to interact with that <select> element is with the Select Option action.
In the Select Option step, you have to provide the locator for the <select> element and the option you want to choose.
In the Option to pick input, you need to provide the text from the <option> element, or the value, or the index.
For example, if we want to select the Rabbit option from our dropdown:
| Strategy | Value |
|---|---|
| Text | Rabbit |
| Value | rabbit |
| Index | 2 |
Here is what the step would look like if we use the value:

You can also pick an option by using 2 Click steps.
The first Click step will open the dropdown.
And the second Click step will pick the option.

2. Modern Dropdowns
Since <select> elements have limited styling options, you'll encounter modern dropdowns in some web applications.
One good example is the Browser dropdown from our Web Tests section:

A modern dropdown is usually built with <div> elements.
Sometimes, those <div> elements might be generated on top of <select> elements that are no longer interactable.
The Select Option action is built to work only with classic dropdowns (<select> elements).
For modern dropdowns, you will need to use 2 Click steps, one to open the dropdown, and one to pick the option.

Technically, you could also use an Execute JavaScript step to select an option from a dropdown.
But that option is only recommended as a last resort, since it does not mimic a real user.
