如何使用 Selenium Webdriver 从日期选择器 div 中选择日期?

seleniumautomation testingtesting tools更新于 2026/1/24 10:22:17

我们可以使用 Selenium Webdriver 从日期选择器中选择数据。日历中的日期选择器在 Web UI 上可以有多种设计方式。我们需要根据 UI 设计测试。

日历可能包含用于选择日期、月份或年份的下拉菜单。它也可能包含向前和向后导航,以便在日期或任何其他设计中上下移动。以下示例展示了一个带有日期选择器的日历。让我们尝试从下面的日历 − 中选择日期 03/02/2021(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();
      //隐式等待
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      //URL 启动
      driver.get("https://jqueryui.com/datepicker");
      //切换到框架
      WebElement f = driver .findElement(By.xpath("//iframe[@class='demo-frame']"));
      driver.switchTo().frame(f);
      //识别框架内的元素
      WebElement l = driver.findElement(By.id("datepicker"));
      l.click();
      //识别列表中的所有 td 元素
      List<WebElement> t =driver.findElements(By.xpath("//table/tbody/tr/td"));
      //列表遍历
      for (int k = 0; k<t.size(); k++) {
         //检查日期
         String dt = t.get(k).getText();
         if (dt.equals(&"2")) {
            t.get(k).click();
            break;
           }
      }
      //获取选定的日期
      String v = l.getAttribute("value");
      System.out.print("日期选择器选择的日期:"+ v);
      //关闭浏览器
      driver.close();
   }
}

输出


相关文章