我是全新的。请原谅任何问题。 我需要在网络表单中填写日期。表单有一个基于此HTML代码的日期选择器:
我的代码看起来像这样:
driver.findElement(By.id("FDD_Create_EntryDate")).sendKeys("26.02.2016");
我认为这不是很蠢,也不是它的工作。 我非常感谢你的帮助和支持。
答案 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");
这需要从测试仪发送日期的正确格式,但如果您不关心测试实际日期小部件,这可以节省大量时间。