如何使用 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();
}
}
输出


