Datepicker | Selenium Forum
M
Posted on 01/08/2016
Hi Ashish,
Unable to select pick and select right date.Could you please let me know how to use datepicker.

package XMLpRac;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class datepickernow {
static WebDriver driver=null;
public static void main(String[] args) throws ParseException {
driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.get("http://us.makemytrip.com/");
driver.findElement(By.xpath("//*[@id='top_content']/div[2]/div[2]/div[2]/div[1]/div[7]/span/span[2]/a")).click();
Date date=new Date();
System.out.println("today is--"+date);
String datecheck="12/15/2016";
SimpleDateFormat ff=new SimpleDateFormat("mm/dd/YYYY");
Date d=ff.parse(datecheck);
System.out.println("check --"+d);

String month=new SimpleDateFormat("MMMM").format(d);
System.out.println(month);
String day=new SimpleDateFormat("dd").format(d);
System.out.println(day);
String year=new SimpleDateFormat("YYYY").format(d);
System.out.println(year);
String month_year_tobeselected=month+" "+year;
System.out.println(month_year_tobeselected);

driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[1]/div/div")).click();

String month_year_diaplayed=driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[1]/div/div")).getText();
System.out.println(month_year_diaplayed);

while(true){
if(month_year_diaplayed.equals(month_year_tobeselected)){
driver.findElement(By.xpath("//table[@class='ui-datepicker-calendar']/tbody/tr/td/a["+day+"]")).click();
System.out.println("clicked on day"+day);
break;
}

else if(d.after(date)){
driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[3]/div/a/span")).click();
}
else if(d.before(date)) {
driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div[1]/div/a/span")).click();
}
//driver.findElement(By.xpath("//table[@class='ui-datepicker-calendar']/tbody/tr/td/a["+day+"]")).click();

driver.findElement(By.xpath("//table[@class='ui-datepicker-calendar']/tbody/tr/td/a["+day+"]")).click();

}

}

}

M
Replied on 01/08/2016

use this

[code:2xllfq5s]package com.soapuitutorial.propertie;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Select_date {
static WebDriver driver;

public static void main(String[] args) throws ParseException {
driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS);
driver.get("https://www.makemytrip.com");
selectDate("25/07/2016");
}



public static void selectDate(String date) throws ParseException {

driver.findElement(By.id("start_date_sec")).click();

SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date dateToBeSelected = df.parse(date);
Date currentDate = new Date();
String monthYearDisplayed = driver.findElement(
By.xpath("//*[@id='ui-datepicker-div']/div[1]/div/div"))
.getText();
System.out.println("month year displayed " + monthYearDisplayed);
String month = new SimpleDateFormat("MMMM").format(dateToBeSelected);
String year = new SimpleDateFormat("yyyy").format(dateToBeSelected);
String day = new SimpleDateFormat("d").format(dateToBeSelected);
System.out.println("day is " + day);
String monthYearToBeSelected = month + " " + year;
System.out
.println("month year to be selected " + monthYearToBeSelected);

while (true) {
if (monthYearToBeSelected.equals(monthYearDisplayed)) {

driver.findElement(By.xpath("//td/a[text()=" + day + "]"))
.click();
System.out.println("found and selected");
break;

} else {
if (dateToBeSelected.after(currentDate)) {

driver.findElement(
By.xpath(".//*[@id='ui-datepicker-div']/div[2]/div/a"))
.click();
} else {
driver.findElement(
By.xpath(".//*[@id='ui-datepicker-div']/div[1]/div/a"))
.click();
}
}
monthYearDisplayed = driver.findElement(
By.xpath("//*[@id='ui-datepicker-div']/div[1]/div/div"))
.getText();
}
}

}
[/code:2xllfq5s]