Verify dropdown selection by value, visible text, and index
Preconditions (1)
✅ Expected Result: The dropdown selections by value, visible text, and index are successful and verified correctly
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.Select; import org.openqa.selenium.support.ui.WebDriverWait; import java.time.Duration; import static org.junit.jupiter.api.Assertions.assertEquals; public class DropdownSelectionTest { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "path/to/chromedriver"); WebDriver driver = new ChromeDriver(); WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); try { driver.get("https://example.com/dropdownpage"); // Wait until dropdown is visible WebElement dropdownElement = wait.until( ExpectedConditions.visibilityOfElementLocated(By.id("country-select")) ); Select countrySelect = new Select(dropdownElement); // Select by value 'US' countrySelect.selectByValue("US"); String selectedValue = countrySelect.getFirstSelectedOption().getAttribute("value"); assertEquals("US", selectedValue, "Selected value should be 'US'"); // Select by visible text 'Canada' countrySelect.selectByVisibleText("Canada"); String selectedText = countrySelect.getFirstSelectedOption().getText(); assertEquals("Canada", selectedText, "Selected text should be 'Canada'"); // Select by index 3 countrySelect.selectByIndex(3); String selectedTextByIndex = countrySelect.getFirstSelectedOption().getText(); // Verify the option at index 3 is selected // Note: Index is zero-based, so index 3 means the 4th option // We verify by comparing the selected option's index int selectedIndex = -1; for (int i = 0; i < countrySelect.getOptions().size(); i++) { if (countrySelect.getOptions().get(i).equals(countrySelect.getFirstSelectedOption())) { selectedIndex = i; break; } } assertEquals(3, selectedIndex, "Selected index should be 3"); } finally { driver.quit(); } } }
This test script uses Selenium WebDriver with Java to automate dropdown selection.
First, it opens the browser and navigates to the page with the dropdown.
It waits explicitly until the dropdown is visible to avoid timing issues.
Then it creates a Select object to interact with the dropdown.
It selects options by value, visible text, and index, verifying each selection with assertions.
The assertions check that the selected option matches the expected value or text.
Finally, it closes the browser to clean up.
Now add data-driven testing to select multiple countries by value, visible text, and index using a loop
Select class allows you to select an option from a dropdown by the exact text shown to the user?Select class provides methods to select dropdown options by different criteria: visible text, value attribute, or index.selectByVisibleText(String text) selects the option matching the exact text shown to the user.Select class?Select starts at 0, so the third option has index 2.selectByIndex(2) selects the third option correctly.<select id="colors"> <option value="r">Red</option> <option value="g">Green</option> <option value="b">Blue</option> </select>
Select select = new Select(driver.findElement(By.id("colors")));
select.selectByValue("g");Green.selectByValue("g") selects the option whose value attribute matches "g" exactly.Select select = new Select(driver.findElement(By.id("dropdown")));
select.selectByIndex(5);selectByIndex(5) throws NoSuchElementException because the index is out of range.<option value="1">Apple</option> <option value="2">Banana</option> <option value="3">Cherry</option> <option value="4">Date</option>
selectByIndex(2) selects the third option (index starts at 0).selectByValue("3") selects option with value "3".selectByVisibleText("Cherry") selects option with visible text "Cherry".Pass the test and this pattern moves unknown