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')")