如何通过selenium web驱动程序验证计算的日期是否正确? 请考虑以下示例:
从日期开始: 01/01/2001 持续时间: 10 迄今为止: 01/10/2001
我将指示selenium输入日期字段和持续时间。 系统应根据日期和持续时间输入自动计算到日期。
我想知道是否有办法验证计算出的日期是否正确,因为日期和持续时间字段中的输入值可能会不时变化。
日期和持续时间字段的静态值也可以 - 我猜。
谢谢!
答案 0 :(得分:1)
您可以使用java.util方法执行此操作。我假设您将从测试数据集中将从日期和持续时间作为字符串传递给您的selenium / webdriver。您必须为每个测试数据执行以下操作:
获取至今日期的方法:
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());