使用Selenium WebDriver处理日历

时间:2017-02-09 18:19:46

标签: java selenium selenium-webdriver

如何使用Selenium WebDriver和Java处理日历元素?我想选择当前日期+ 5天的日期。请告诉我如何做到这一点。我看到日历包含一个网表。

2 个答案:

答案 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);