以下是我的日期选择器的html DOM
。在此输入字段中不可编辑。DOM中没有其他用于日期选择器的'tr''td'标签。
<form>
<div class="input-group date" id="datetimepicker1">
<input type="text" id="accFromDateId" class="form-control" placeholder="DD/MMM/YYYY" data-i18n="BillsView.CustomerSearch.Placeholder.DateFormat">
<span class="input-group-addon"> <span class="glyphicon glyphicon-calendar"></span> </span> </div></form>
此输入字段仅从日期选择器获取日期。 我尝试了以下代码。但这不起作用
硒脚本:
WebElement date=driver.findElement(By.name("accFromDateId"));
date.sendKeys("01232019");
date.submit();
答案 0 :(得分:1)
1)应该使用“ ID”查找代替“名称”
var driver = new ChromeDriver();
driver.Navigate().GoToUrl("demo.html");
IWebElement date = driver.FindElement(By.Id("accFromDateId"));
date.SendKeys("01232019");
date.Submit();
2)另一种方法是使用日期选择器弹出窗口。在下面找到一个选择jquery datepicker的示例代码
var driver = new ChromeDriver();
driver.Navigate().GoToUrl("https://jqueryui.com/datepicker/");
driver.SwitchTo().Frame(driver.FindElement(By.XPath("//iframe[@class='demo-frame']")));
IWebElement date = driver.FindElement(By.Id("datepicker"));
date.Click();
driver.FindElementByLinkText("24").Click();
答案 1 :(得分:0)
您的问题尚不清楚,为什么您会发现输入字段也是不可编辑的。要通过<input>
标签发送字符序列,即 date 作为 25 / JAN / 2019 ,您可以使用以下解决方案:
WebElement myDate = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='form-control' and @id='accFromDateId']")));
myDate.clear();
myDate.sendKeys("25/JAN/2019");
myDate.submit();