如何使用 Selenium WebDriver 自动化测试日历?

seleniumautomation testingtesting tools

我们可以使用 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();
      //隐式等待
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //URL 启动
      driver.get("https://jqueryui.com/datepicker/#date%E2%88%92range");
      //识别并切换到框架
      WebElement r = driver.findElement(By.xpath("//iframe[@class='demo-frame']"));
      driver.switchTo().frame(r);
      //识别元素
      WebElement e = driver.findElement(By.id(<datepicker"));
      e.click();
      //识别列表中带有 td 标签的元素
      List<WebElement> d =driver.findElements(By.xpath(<//table/tbody/tr/td"));
      //迭代列表
      for (int i = 0; i<d.size(); i++) {
         //检查预期数据
         String s = d.get(i).getText();
         if (s.equals(&"2")) {
            d.get(i).click();
            break;
           }
      }
      //获取选定数据
      String m = e.getAttribute(&"value&");
      System.out.print(&"日历中选择的日期是:"+ m);
      //关闭浏览器
      driver.quit();
   }
}

输出


相关文章