如何从硒中的日期选择器中选择今天的日期和时间(+15分钟)

时间:2018-11-08 19:17:43

标签: javascript java selenium selenium-webdriver

我无法从硒中的日期选择器中选择今天的日期和时间(加上15分钟的时间)。

现在我已经为日期编写了无法正常工作的代码,所以这里是代码-

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

日期选择器 DatePicker

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

注意:1.预计我们应该可以选择今天的日期 2.当前时间距离日期选择器+15分钟。

我很难找到家伙,任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

这个问题缺少一些细节,例如时间选择的html页面的外观,但是无论如何,我都会尝试猜测并帮助您从问题中获得什么。

由于您的条件不符合,您无法选择当前日期,因此很可能会发生:

if (cell.getText().equals(today))

cell是一个div,它的getText()应该分别返回282930。然后将其与值dateFormat2.format(date2);进行比较,该值很可能返回类似08/11/2018 02:12 PM的值。尝试进行以下修改(Java 8 +):

int currentDay = LocalDate.now().getDayOfMonth();
if (cell.getText().equals(currentDay)) {

}

小时和分钟逻辑要么添加html的外观,要么仅使用LocalDate.now().getHour()来获取当前小时并实现类似的条件以选择必要的时间。提示:您可能需要滚动到必要的元素。

仔细研究LocalTime here

答案 1 :(得分:0)

  1. 当前时间:日历cal = Calendar.getInstance();

  2. 添加15分钟:cal.add(Calendar.MINUTE,15);

  3. 返回为日期类型:日期date = cal.getTime();