Java:String等于不适用于innerHTML文本
我正在用java中的Selenium测试一个搜索向导,在这里我需要单击当前日期。我正在尝试遍历日历中的所有日期,如果与当前日期匹配,我将单击它 这里的问题是日期是隐藏的,因此我必须获取Java:String等于不适用于innerHTML文本,java,string,selenium,equals,Java,String,Selenium,Equals,我正在用java中的Selenium测试一个搜索向导,在这里我需要单击当前日期。我正在尝试遍历日历中的所有日期,如果与当前日期匹配,我将单击它 这里的问题是日期是隐藏的,因此我必须获取innerHTML属性,然后使用子字符串提取日期编号,然后将其与Calendar.getInstance().get(Calendar.DAY\u OF\u MONTH)进行比较,但我的条件每次都失败。您尝试过str.trim(),也尝试过删除所有unicode字符,但没有任何效果。代码如下: WebElement
innerHTML
属性,然后使用子字符串提取日期编号,然后将其与Calendar.getInstance().get(Calendar.DAY\u OF\u 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
}
}
WebElement day\u of_month=AutoUtils.findElementByTagName(day,“span”);
如果(月的第天!=空){
字符串innerHtml=day_of_month.getAttribute(“innerHtml”);
//innerHtml是“23Great price”
//我需要的日期是23号
String exact_date=innerHtml.substring(0,innerHtml.indexOf(“您必须将int值(月日)转换为字符串:
if (exact_date.equals(String.valueOf(Calendar.getInstance().get(Calendar.DAY_OF_MONTH)))) {
...
}
尝试使用innerText而不是innerHTML。innerText只提供用户可见的内容。innerHTML甚至提供其中的html和Java脚本。
你应该能够得到“23”只做一个简单的比较
另外,如果您可以显示html,我们可能会很容易为您提供帮助。您是否检查了Calendar.getInstance().get(Calendar.DAY\u of\u MONTH)的返回类型
?我相信这是一个日历实例。所以在比较之前,你应该键入cast。啊,我明白了。这是一个int.FYI,像现在这样麻烦的旧日期时间类,被类取代了。是的。我错过了返回类型。