如何使用 Selenium WebDriver 自動化日曆進行測試?


我們可以使用 Selenium webdriver 自動化日曆。自動化日曆上的測試可能有點困難,因為在 Web UI 中,不同日曆的日期、月份和年份選擇可能不同。

日曆可以採用下拉選擇的形式,也可以使用後退和前進按鈕來選擇日期的上移和下移,或具有任何其他功能。讓我們看一個在以下日曆中選擇 03/02/2021(2021 年 3 月 2 日) 的示例 -

在上面的示例中,日曆位於一個表格中。表格由 <table> 標記表示,其行由 <tr> 標記表示,列由 <td> 標記表示。

要選擇日期,我們必須藉助 findElements 方法訪問 td 標記內的所有元素。

findElements 方法返回一個元素列表。我們將遍歷此列表(使用迴圈)並搜尋特定日期。一旦獲得所需的日期,我們就會單擊它,然後退出迴圈。

示例

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 CalendarDt{
   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/#date%E2%88%92range");
      //identify and switch to frame
      WebElement r = driver.findElement(By.xpath("//iframe[@class='demo-frame']"));
      driver.switchTo().frame(r);
      //identify element
      WebElement e = driver.findElement(By.id("datepicker"));
      e.click();
      //identify elements with td tag in list
      List<WebElement> d =driver.findElements(By.xpath("//table/tbody/tr/td"));
      //iterate list
      for (int i = 0; i<d.size(); i++) {
         //check expected data
         String s = d.get(i).getText();
         if (s.equals("2")) {
            d.get(i).click();
            break;
         }
      }
      //get data selected
      String m = e.getAttribute("value");
      System.out.print("Date selected in calendar is: "+ m);
      //close browser
      driver.quit();
   }
}

輸出

更新於:08-Apr-2021

3K+ 觀看次數

開啟您的職業生涯

完成課程,獲得認證

開始
廣告