【问题标题】:Date calculator : Selenium Web Driver日期计算器:Selenium Web Driver
【发布时间】:2014-04-21 18:58:38
【问题描述】:

如何通过 selenium 网络驱动程序验证计算的日期是否正确? 请考虑以下示例:

从日期: 01/01/2001 持续时间: 10 截止日期: 2001 年 1 月 10 日

我将指示 selenium 从日期字段和持续时间输入日期。 系统会根据输入的起始日期和持续时间自动计算To date。

我想知道是否有办法验证计算的 To Date 是否正确,因为从日期和持续时间字段输入的值可能会不时更改。

从日期和持续时间字段的静态值也可以 - 我猜。

谢谢!

【问题讨论】:

    标签: java date selenium scripting selenium-webdriver


    【解决方案1】:

    您可以使用 java.util 方法做到这一点。我假设您将从测试数据集中将 From DateDuration 作为字符串传递给您的 selenium/webdriver。您必须对每个测试数据执行以下操作:

    • 使用 util 方法计算 To Date(getToDate 代码如下)。
    • 使用 selenium/webdriver 获取 To Date 中的文本,用于您的测试数据。
    • 将 selenium/webdriver 获取的文本与 getToDate 方法返回的文本进行比较。

    获取To Date的方法:

    public static String getToDate(String fromDate, String duration){
        try {
            String[] arrFromDate = fromDate.split("/");
            int fromMonth = Integer.parseInt(arrFromDate[0])-1;
            int fromDay = Integer.parseInt(arrFromDate[1]);
            int fromYear = Integer.parseInt(arrFromDate[2]);
            int intDuration = Integer.parseInt(duration);
            SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
            Calendar cal = Calendar.getInstance();
            cal.set(Calendar.DAY_OF_MONTH, fromDay);
            cal.set(Calendar.MONTH, fromMonth);
            cal.set(Calendar.YEAR, fromYear);   
            cal.add(Calendar.DAY_OF_MONTH, intDuration);
            String toDate = sdf.format(cal.getTime());
            return toDate;
        } catch (NumberFormatException e) {
            e.printStackTrace();
            return null;
        }
    

    要验证的代码:

    String appToDate = driver.findElement(By.id("toDate")).getText();
    String myToDate = getToDate("01/01/2001","10");
    boolean isToDateCorrect = false;
    if (appToDate.equals(myToDate )){
        isToDateCorrect  = true;
    }
    

    【讨论】:

      【解决方案2】:

      我建议解析日期而不是拆分字符串

      String strDate = "01/01/2001";
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM/dd/yyyy");
      Date date = simpleDateFormat.parse(strDate);
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(date);
      calendar.add(Calendar.DATE, 10); // 10 == duration
      String outStr = simpleDateFormat.format(calendar.getTime());
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-25
        • 2021-03-04
        • 1970-01-01
        • 2020-02-05
        相关资源
        最近更新 更多