日期计算器:Selenium Web Driver

时间:2014-04-21 09:19:27

标签: java date selenium scripting selenium-webdriver

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

从日期开始: 01/01/2001 持续时间: 10 迄今为止: 01/10/2001

我将指示selenium输入日期字段和持续时间。 系统应根据日期和持续时间输入自动计算到日期。

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

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

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用java.util方法执行此操作。我假设您将从测试数据集中将从日期持续时间作为字符串传递给您的selenium / webdriver。您必须为每个测试数据执行以下操作:

  • 使用util方法计算 To Date (getToDate下面的代码)。
  • 使用selenium / webdriver获取至今日期中的文字,以获取测试数据。
  • 将selenium / webdriver提取的文本与getToDate方法返回的文本进行比较。

获取至今日期的方法:

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

答案 1 :(得分:1)

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

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());