我正在 java 中使用 Selenium 来测试搜索向导,我需要在其中单击当前日期。我试图遍历日历中的所有日期,如果与当前日期匹配,则单击它。
这里的问题是日期是隐藏的,所以我必须获取 innerHTML
属性,然后使用子字符串提取日期数字,然后将其与 Calendar.getInstance().get 进行比较(Calendar.DAY_OF_MONTH)
但我的情况每次都失败。已尝试 str.trim()
并尝试删除所有 unicode 字符,但没有任何效果。下面是代码:
WebElement day_of_month = AutoUtils.findElementByTagName(day, "span");
if(day_of_month!=null){
String innerHtml = day_of_month.getAttribute("innerHTML");
// innerHtml is "23<span class="buzz-message">Great price</span><i></i>"
// where 23 is the date i need
String exact_date = innerHtml.substring(0,innerHtml.indexOf("<span"));
exact_date = exact_date.replaceAll("\\P{Print}", ""); // have also tried exact_date.trim();
if(exact_date.equals(Calendar.getInstance().get(Calendar.DAY_OF_MONTH))){
day_of_month.click();
} else{
System.out.Println("not found"); //gets printed every time
}
}
有人可以帮忙吗?
最佳答案
您必须将 int 值(月份中的某一天)转换为字符串:
if (exact_date.equals(String.valueOf(Calendar.getInstance().get(Calendar.DAY_OF_MONTH)))) {
...
}
关于Java:字符串等于不适用于innerHTML 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42969081/