如何使用Selenium Webdriver從日期選擇器div中選擇日期?


我們可以使用Selenium webdriver從日期選擇器中選擇日期。日曆中的日期選擇器可以在web UI上以多種方式設計。根據UI,我們需要設計我們的測試。

日曆可能包含用於選擇日、月或年的下拉選單。它還可能包含向前和向後導航,以便在日期中上下移動,或任何其他設計。下面的示例顯示了一個帶有日期選擇器的日曆。讓我們嘗試從下面的日曆中選擇2021年3月2日(2021年3月2日)的日期:

在上面的html程式碼中,我們可以看到日曆在一個由<table>標識的表格標籤內,它的日期由分別具有<tr>和<td>標籤的行和列表示(tr是td的父元素)。要選擇日期,我們需要使用findElements方法標識所有具有<td>標籤的元素。

此方法返回一個匹配元素列表。我們必須遍歷此列表,並使用getText方法檢查特定日期。一旦遇到所需日期,我們將選擇它並從迴圈中退出。

示例

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import java.util.List;
public class DtPicker{
   public static void main(String[] args) {
      System.setProperty("webdriver.gecko.driver", "C:\Users\ghs6kor\Desktop\Java\geckodriver.exe");
      WebDriver driver = new FirefoxDriver();
      //implicit wait
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //URL launch
      driver.get("https://jqueryui.com/datepicker");
      //switch to frame
      WebElement f = driver .findElement(By.xpath("//iframe[@class='demo-frame']"));
      driver.switchTo().frame(f);
      //identify element within frame
      WebElement l = driver.findElement(By.id("datepicker"));
      l.click();
      //identify all td elements in list
      List<WebElement> t =driver.findElements(By.xpath("//table/tbody/tr/td"));
      //list traversal
      for (int k = 0; k<t.size(); k++) {
         //check date
         String dt = t.get(k).getText();
         if (dt.equals("2")) {
            t.get(k).click();
            break;
         }
      }
      //obtain selected date
      String v = l.getAttribute("value");
      System.out.print("Date selected by date picker: "+ v);
      //close browser
      driver.close();
   }
}

輸出

更新於:2021年4月3日

2K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告