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

广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP