繁体   English   中英

使用Selenium WebDriver处理日历

[英]Handle calendar using Selenium WebDriver

如何使用带有Java的Selenium WebDriver处理日历元素? 我想选择的日期是当前日期+ 5天。 请向我建议如何做到这一点。 我看到日历包含一个Web表格。

假设您的日期选择器日历为表格格式,则可以使用:

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。 这应该可以满足您的目的,但是当您的当前日期在表的最后一列时,您需要处理这种情况。

首先添加日期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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM