Selenium Java日期选择器

时间:2016-02-25 09:24:39

标签: java selenium datepicker

我是全新的。请原谅任何问题。 我需要在网络表单中填写日期。表单有一个基于此HTML代码的日期选择器: enter image description here

我的代码看起来像这样:

driver.findElement(By.id("FDD_Create_EntryDate")).sendKeys("26.02.2016");

我认为这不是很蠢,也不是它的工作。 我非常感谢你的帮助和支持。

2 个答案:

答案 0 :(得分:0)

 //Click on textbox so that datepicker will come  
  driver.findElement(By.id("datepicker")).click();  
  driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);  
 //Click on next so that we will be in next month  
  driver.findElement(By.xpath("Pat to ur date picker")).click();  

 /*DatePicker is a table.So navigate to each cell   
 * If a particular cell matches value 13 then select it  
 */  
 WebElement dateWidget = driver.findElement(By.id("ui-datepicker-div"));  
List<webelement> rows=dateWidget.findElements(By.tagName("tr"));  
List<webelement> columns=dateWidget.findElements(By.tagName("td"));  

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

答案 1 :(得分:0)

这是一个有点厚颜无耻的解决方案,但是你可以执行一些javascript来使日期输入字段不是只读吗?像这样:

((JavascriptExecutor)driver).executeScript
    (    
        "arguments[0].removeAttribute('readonly');", 
        driver.findElement(By.id("FDD_Create_EntryDate"))
    );
driver.findElement(By.Id("FDD_Create_EntryDate")).sendKeys("26.02.2016");

这需要从测试仪发送日期的正确格式,但如果您不关心测试实际日期小部件,这可以节省大量时间。