首页 > 解决方案 > 如何在java中检查元素中的字符串是否为“有效日期格式”,“今天”或“昨天”

问题描述

我正在自动化移动领域研究 selenium,我遇到了一种情况,我需要验证该日期是有效日期格式(2019 年 3 月 10 日)或“今天”或“昨天”的元素列表" 如果这些我进入列表中的任何内容,我应该执行进一步的操作,但我没有得到任何地方如何将所有这些与字符串进行比较到列表中

我已经尝试通过迭代器来获取那个特定的字符串


List<MobileElement> elementCells ;

        if(b==true) {
            elementCells =  getDriver().findElements(by("collect_elements_cells"));
            label(String.valueOf(elementCells.size()));// ignore this line this is the framework method to print into console 
            Iterator<MobileElement> iterator = elementCells.iterator();
            while (iterator.hasNext()) {
                MobileElement strname = iterator.next();

// in this if condition what should be the third parameter to check the string for date formate (mar 07, 2019)
                if (strname.getTagName().equals("today","yesterday",---)) {

                }
            }


            MobileElement option = getDriver().findElement(by("elements_cells"));

            hardWait(2000);
            option.click();

标签: javaseleniumappium

解决方案


在 Java中String.equals()函数只接受一个参数,你需要修改你的代码,比如:

if (strname.getTagName().equals("today")) {
    // do what you need for "today"
} else if (strname.getTagName().equals("yesterday")) {
    //do what you need for yesterday
} else {
    SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy");
    try {
        sdf.parse(strname.getTagName());
        System.out.println("date is valid");
    } catch (ParseException ex) {
        System.out.println("Date is not valid: " + ex.getMessage());
    }
}

有关上述模式解释以及有关方法和字段的信息,请参阅SimpleDateFormat 类 JavaDoc 。

另请注意,使用 Thread.sleep 是一种反模式,请考虑使用WebDriverWait显式等待元素存在/可用性/等


推荐阅读