I am unable to select todays date and time(plus 15 mins time) from the date picker in selenium.
Right now I have written the code for date which not working so here is the code-
DateFormat dateFormat2 = new SimpleDateFormat("dd/MM/yyyy hh:mm a");
System.out.println("Format defined");
Date date2 = new Date();
System.out.println("Date object creation");
String today = dateFormat2.format(date2);
WebElement dateWidget = driver.findElement(By.xpath(".//*[@class='xdsoft_calendar']"));
System.out.println("Calendar web element");
List<WebElement> columns=dateWidget.findElements(By.tagName("div"));
System.out.println("listing web element");
System.out.println(today);
//comparing the text of cell with today's date and clicking it.
for (WebElement cell : columns)
{
System.out.println("In for loop"+cell.getText());
if (cell.getText().equals(today))
{
System.out.println("inside if");
System.out.println(today);
cell.click();
break;
}
}
<div class="xdsoft_calendar">
<table>
<thead>
<tr>
<th>Sun</th>
<th>Mon</th>
<th>Tue</th>
<th>Wed</th>
<th>Thu</th>
<th>Fri</th>
<th>Sat</th>
</tr>
</thead>
<tbody>
<tr>
<td data-date="28" data-month="9" data-year="2018" class="xdsoft_date xdsoft_day_of_week0 xdsoft_date xdsoft_disabled xdsoft_other_month xdsoft_weekend">
<div>28</div>
</td>
<td data-date="29" data-month="9" data-year="2018" class="xdsoft_date xdsoft_day_of_week1 xdsoft_date xdsoft_disabled xdsoft_other_month">
<div>29</div>
</td>
<td data-date="30" data-month="9" data-year="2018" class="xdsoft_date xdsoft_day_of_week2 xdsoft_date xdsoft_disabled xdsoft_other_month">
<div>30</div>
</td>
</tr>
</tbody>
</table>
</div>
Note: 1.Expected is we should be able to select todays date 2. Current time +15 mins time from the date picker.
Its very tough i found guys, any help would be appreciated
The question lacks some details, for instance how the html page of time selection looks, but anyway I will try to guess and help with what is possible to get from the qestion.
As you are not able to select the current date most likely it happens because your condition is not met:
if (cell.getText().equals(today))
cell is a div
and it's getText()
should return 28
, 29
, and 30
respectively. And you compare it with the value dateFormat2.format(date2);
which most likely return something like 08/11/2018 02:12 PM
. Try the following modification (Java 8+):
int currentDay = LocalDate.now().getDayOfMonth();
if (cell.getText().equals(currentDay)) {
}
for hour and minutes logic either add how html looks like or just use LocalDate.now().getHour()
to get current hour and implement similar condition to select necessary time. Hint: you might need to scroll to the necessary element.
Take a closer look at LocalTime here
Current time : Calendar cal= Calendar.getInstance();
Add 15 Mins : cal.add(Calendar.MINUTE, 15);
Return as date type : Date date = cal.getTime();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.