How to select the Date Picker In Selenium WebDriver How to select the Date Picker In Selenium WebDriver selenium selenium

How to select the Date Picker In Selenium WebDriver


DatePicker are not Select element. What your doing in your code is wrong.

Datepicker are in fact table with set of rows and columns.To select a date you just have to navigate to the cell where our desired date is present.

So your code should be like this:

WebElement dateWidget = driver.findElement(your locator);List<WebElement> columns=dateWidget.findElements(By.tagName("td"));for (WebElement cell: columns){   //Select 13th Date    if (cell.getText().equals("13")){      cell.findElement(By.linkText("13")).click();      break; }


You can try this, see if it works for you.

Rather than choosing date from date picker, you can enable the date box using javascript & enter the required date, this would avoid excessive time required to traverse through all date elements till you reach one you require to select.

Code forfrom date

((JavascriptExecutor)driver).executeScript ("document.getElementById('fromDate').removeAttribute('readonly',0);"); // Enables the from date boxWebElement fromDateBox= driver.findElement(By.id("fromDate"));fromDateBox.clear();fromDateBox.sendKeys("8-Dec-2014"); //Enter date in required format

Code forto date

((JavascriptExecutor)driver).executeScript ("document.getElementById('toDate').removeAttribute('readonly',0);"); // Enables the from date boxWebElement toDateBox= driver.findElement(By.id("toDate"));toDateBox.clear();toDateBox.sendKeys("15-Dec-2014"); //Enter date in required format


You can directly use following javascript

((JavascriptExecutor)driver).executeScript("document.getElementById('fromDate').setAttribute('value','10 Jan 2013')")