簡體   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