简体   繁体   中英

How to select today date & time(+15mins) from a date picker in selenium

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

Date picker日期选择器

<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

  1. Current time : Calendar cal= Calendar.getInstance();

  2. Add 15 Mins : cal.add(Calendar.MINUTE, 15);

  3. 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM