Module 15 - Calender | Selenium Forum
M
Posted on 07/07/2016
Hello Sir,
I am exactly doing the same thing you are doing in Video Module 15.

But I am getting an error like below:
**********************************************************************************************
Exception in thread "main" java.lang.NullPointerException
at makemytrip.selectDate(makemytrip.java:30)
at makemytrip.main(makemytrip.java:21)
**********************************************************************************************
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 makemytrip {

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

driver.findElement(By.xpath("//*[@id='start_date_sec']")).click();
selectDate("11/07/2016");

}

public static void selectDate(String date) throws ParseException{

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[2]/div/div")).getText();
System.out.println(monthYearDisplayed);
String month = new SimpleDateFormat("MMMM").format(dateTobeSelected);
// System.out.println(month);
String year = new SimpleDateFormat("yyyy").format(dateTobeSelected);
// System.out.println(year);
String monthYearToBeSelected = month+" "+year;
System.out.println(monthYearToBeSelected);




}
}

M
Replied on 07/07/2016

use this

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();
}
}

}


M
Replied on 08/07/2016

Thank you very much Sir

Responsive image Responsive image Responsive image