During UI test automation you will need to write tests that validate the options that are present in a select tag.
Getting all the options in the select tag is very simple using Selenium Webdriver and below is how it is done.
1. In the page object model of the page you create a WebElement that identifies the select tag; example class presented below:
Is Your Infrastructure Ready for Global Traffic Spikes?
Unexpected load surges can disrupt your services. With LoadFocus’s cutting-edge Load Testing solutions, simulate real-world traffic from multiple global locations in a single test. Our advanced engine dynamically upscales and downscales virtual users in real time, delivering comprehensive reports that empower you to identify and resolve performance bottlenecks before they affect your users.
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class PageObject {
public String[] occupantNoOptionExpectedArray = {"1", "2", "3", "4", "5+"};
@FindBy(xpath = "//select[@id='numberofoccupants']")
public WebElement noOfOccupantsDropdown;
}
2. In the test you will create a Select object (class org.openqa.selenium.support.ui.Select) like in the below example:
import java.util.List;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Select;
import org.testng.Assert;
import org.testng.annotations.Test;
public class OccupantPageTest {
PageObject pageObject = new PageObject();
@Test
public void test_Occupants_Drop_Down_Values() throws Exception{
Select selectBedroom = new Select(pageObject.noOfOccupantsDropdown);
List<WebElement> optionSelect = selectBedroom.getOptions();
for (int i = 0; i < optionSelect.size(); i++){
Assert.assertEquals(optionSelect.get(i).getText(), pageObject.occupantNoOptionExpectedArray[i], "Values in the drop down for number of occupants are wrong" );
}
}
}
That’s it. Simple. Enjoy.
Think your website can handle a traffic spike?
Fair enough, but why leave it to chance? Uncover your website’s true limits with LoadFocus’s cloud-based Load Testing for Web Apps, Websites, and APIs. Avoid the risk of costly downtimes and missed opportunities—find out before your users do!
Effortless setup No coding required