如何使用Selenium WebDriver和Java处理日历元素?我想选择当前日期+ 5天的日期。请告诉我如何做到这一点。我看到日历包含一个网表。
答案 0 :(得分:1)
假设您的日期选择器日历采用表格格式,您可以使用:
public void checkDate(){
String currentDate = null;
int counter=0;
WebElement tab = driver.findElement(By.id("tabid"));
List<WebElement> rows= tab.findElements(By.tagName("tr"));
for(int i =0;i<=rows.size()-1;i++){
List<WebElement> columns=rows.get(i).findElements(By.tagName("td"));
Iterator itr = columns.iterator();
while(itr.hasNext()){
WebElement we=(WebElement) itr.next();
if(we.getText().equals(currentDate)){
break;
}
counter=counter+1;
}
//element to be clicked is +5 to current date
if(driver.findElement(By.cssSelector("tr:nth-child(i) li:nth-child(counter+5)")).isDisplayed()){
driver.findElement(By.cssSelector("tr:nth-child(i) li:nth-child(counter+5)")).click();
}
}
PS。这应该符合您的目的,但是当您的当前日期位于表格的最后一列时,您需要处理这种情况。
答案 1 :(得分:1)
首先添加5天的日期。然后只提取日期的整数值和月份的整数值。获得这些值后,您可以轻松选择日期。
使用以下代码
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
c.setTime(new Date()); // Now use today date.
c.add(Calendar.DATE, 5); // Adding 5 days
String output = sdf.format(c.getTime());
int month = c.get(Calendar.MONTH)+ 1;
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println("Month : " + month + " day : " + day);