【问题标题】:How to select today date & time(+15mins) from a date picker in selenium如何从硒中的日期选择器中选择今天的日期和时间(+15 分钟)
【发布时间】:2019-04-12 08:56:18
【问题描述】:

我无法从 selenium 中的日期选择器中选择今天的日期和时间(加上 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;
            }
        }

日期选择器

<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分钟时间。

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

【问题讨论】:

    标签: javascript java selenium selenium-webdriver


    【解决方案1】:
    1. 当前时间:Calendar cal= Calendar.getInstance();

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

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

    【讨论】:

      【解决方案2】:

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

      由于您无法选择当前日期,这很可能是因为您的条件不满足:

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

      单元格是div,它的getText() 应该分别返回28、29 和30。然后你将它与值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

      【讨论】:

      • 当我在 cell.getText() 中得到空白值时;
      • @SobhitSharma 请您仔细检查您在问题中发布的 HTML 与您实际拥有的 HTML。如果它是实际的,那么很可能问题出在 WebElement dateWidget = driver.findElement(By.xpath(".//*[@class='xdsoft_calendar']"));您会得到另一个当前未显示的日历。您可以通过将 .findElement 更改为 .findElements 并检查大小来仔细检查。如果有多个 - 请确保选择正确的一个并再试一次。
      • 是的,你是对的。这是我的坏事。问题出在 xpath 中,因此我无法从表中获取日期,我变得空白。再次感谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2016-12-16
      • 2016-12-23
      • 1970-01-01
      • 2017-06-24
      • 2014-09-24
      • 1970-01-01
      相关资源
      最近更新 更多