I\'m not able to select options in a drop down list. I think I need to have .Select
or SelectElement
, but there is no such option.
Sample code:
Depending what version of Selenium WebDriver you are using you can use the SelectElement
class, which will be included in OpenQA.Selenium.Support.UI
.
For example:
SelectElement selector = new SelectElement(element);
selector.SelectByIndex(1);
Where the element is your drop down box.
Use the below simple sample code:
String Input="Value to Select";
String xPathVal="@["id=Samplexpath"]";
IWebElement TargetElement = driver.FindElement(By.XPath(xPathVal));
SelectElement dropdown = new SelectElement(TargetElement);
dropdown.SelectByText(Input.Trim());
Here is an example to better illustrate how to get all the items in a drop down list and to select an item from the drop down list.
A sample Html code for drop down list
<select>
<option>Milk</option>
<option>Coffee</option>
<option>Tea</option>
</select>
Code below gets all the items from the drop down list above and selects item 'Coffee'.Logic of the code is as follows
Step 1. Create an interface of the web element tag Step 2. Create an IList with all the child elements of web element tag Step 3. Select the Drop List item "Coffee"
using System;
using System.Collections.Generic;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.Support.UI;
namespace SeleniumTests
{
class DropDownListSelection
{
static void Main(string[] args)
{
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://DropDownList.html");
IWebElement element = driver.FindElement(By.XPath("//Select"));
IList<IWebElement> AllDropDownList = element.FindElements(By.XPath("//option"));
int DpListCount = AllDropDownList.Count;
for (int i = 0; i < DpListCount; i++)
{
if (AllDropDownList[i].Text == "Coffee")
{
AllDropDownList[i].Click();
}
}
Console.WriteLine(DpListCount);
Console.ReadLine();
}
}
}
You can also use:
new SelectElement(driver.FindElement(By.Id("")).SelectByText(""));
Or:
new SelectElement(driver.FindElement(By.Id("")).SelectByValue(""));
This works perfectly ...
SelectElement selector = new SelectElement(element);
selector.SelectByIndex(1);
Where the element is your drop down box.