[英]How to handle calendar popup using Selenium WebDriver with Java?
[英]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.