java - 如何在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();
解决方案
在 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来显式等待元素存在/可用性/等。
推荐阅读
- python - PythonGnuPG 生成密钥,加密和解密消息
- .net - 带有 .NET Core 2.2 的 AmazonMQ 的 SocketException
- python - 为什么 NumPy 矩阵乘法广播在一个方向上工作,而不在转置方向上工作?
- npm - 在我的 Mac 上安装 BigCommerce Stencil-CLI 时遇到问题
- r - 如何在R中尽快将宽度为2的字符串拆分为数据帧的行
- c++ - 在不区分大小写的 std::map 中无法将 std::wstring 转换为 LPCTSTR
- c# - 如何在 devops 项目中实现 dotnet core 3.0?
- ruby - 运行 Rails 服务器时,asdf 消息“没有为命令 rails 设置版本”
- javascript - React 或 Node 中的用户登录名和角色?
- node.js - 我的更新函数没有返回或在数据库中更新,我的连接是正确的 findbyidandupdate in mongoose