java - 如何在 Selenium WebDriver 中选择日期选择器

标签 java jquery selenium selenium-webdriver

目前正在研究 Selenium WebDriver 并使用 Java。我想从下拉列表中选择 date range 中的值。我想知道如何在日期选择器下拉列表中选择 Date, Month and year 值.

这是 HTML 标签:

<dd id="date-element">
<input id="fromDate" class="hasDatepicker" type="text" style="width:57px; padding:3px 1px; font-size:11px;" readonly="readonly" name="fromDate" value="01 Jan 2013">

<input id="toDate" class="hasDatepicker" type="text" style="width:57px; padding:3px 1px; font-size:11px;" readonly="readonly" name="toDate" value="31 Dec 2013">  

enter image description here

我试过下面的示例代码:

Log.info("Clicking on From daterange dropdown");
JavascriptExecutor executor8 = (JavascriptExecutor)driver;
executor8.executeScript("document.getElementById('fromDate').style.display='block';");
Select select8 = new Select(driver.findElement(By.id("fromDate")));
select8.selectByVisibleText("10 Jan 2013");
Thread.sleep(3000);

Log.info("Clicking on To daterange dropdown");
JavascriptExecutor executor10 = (JavascriptExecutor)driver;
executor10.executeScript("document.getElementById('toDate').style.display='block';");
Select select10 = new Select(driver.findElement(By.id("toDate")));
select10.selectByVisibleText("31 Dec 2013");
Thread.sleep(3000);

最佳答案

DatePicker 不是 Select 元素。你在代码中所做的是错误的。

日期选择器实际上是包含一组行和列的表格。要选择一个日期,您只需导航到我们想要的日期所在的单元格。

所以你的代码应该是这样的:

WebElement dateWidget = driver.findElement(your locator);
List<WebElement> columns=dateWidget.findElements(By.tagName("td"));

for (WebElement cell: columns){
   //Select 13th Date 
   if (cell.getText().equals("13")){
      cell.findElement(By.linkText("13")).click();
      break;
 }

关于java - 如何在 Selenium WebDriver 中选择日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21422548/

相关文章:

java - 如何防止 theme.dialog Activity 允许外部触摸?

java - 我怎么知道一组线对象是近似封闭区域?

java - 如何获取从蓝牙传入消息返回的字节数组值并在将其显示在其他设备上之前对其进行编辑?

javascript - 正确显示前 3 行后,Div 神秘地向下移动

java - Testng:如果有异常则跳过/失败其余测试

java - 在哪里放置条件创建代码

jquery - 如何修复输入文本中的文本格式?

javascript - jquery 非常简单的插件,非常基础

java - Selenide-为每个Junit 5测试创建新的驱动程序

java - 如何在 Selenium 中将 LI 与 UL 分开