首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日期计算器: Selenium Web驱动程序

日期计算器: Selenium Web驱动程序
EN

Stack Overflow用户
提问于 2014-04-21 09:19:27
回答 2查看 2.3K关注 0票数 0

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

日期: 01/01/2001 持续时间: 10 截至日期: 01/10/2001

我将指示selenium在日期字段和持续时间上输入日期。系统应根据从日期和持续时间输入的数据自动计算截止日期。

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

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

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-04-21 10:25:06

您可以使用java.util方法来完成这一任务。我假设您会从测试数据集中将从Date、和作为字符串传递给selenium/webdriver。您必须对每个测试数据执行以下操作:

  • 使用util方法计算迄今为止的(getToDate的代码)。
  • 使用selenium/webdriver获取中的文本,以便为测试数据确定的日期。
  • 将selenium/webdriver获取的文本与getToDate方法返回的文本进行比较。

获取到Date的方法

代码语言:javascript
复制
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;
    }

核实代码:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2014-04-21 10:58:38

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

代码语言:javascript
复制
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());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23194353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档