如何使用selenium web驱动程序C#将日期字符串输入telerik日期选择器文本框?

如何使用selenium web驱动程序C#将日期字符串输入telerik日期选择器文本框?,c#,selenium-webdriver,automated-tests,C#,Selenium Webdriver,Automated Tests,我有一个页面,上面有一个带有文本框的Telerik日期控件。用户在文本框中输入日期,然后单击保存按钮 出于某种原因,当我运行测试时,它会将日期输入文本框,但当它进行保存时,它会清除日期控件的文本框,因此日期控件文本框中不存在任何内容 终于找到了答案 实际上,将值输入telerik RAD日期选择器的唯一方法是通过javascript命令 var dateTextBox = driver.FindElement(By.Id("ctl00_Content_TxtDateOfBirth_datePic

我有一个页面,上面有一个带有文本框的Telerik日期控件。用户在文本框中输入日期,然后单击保存按钮


出于某种原因,当我运行测试时,它会将日期输入文本框,但当它进行保存时,它会清除日期控件的文本框,因此日期控件文本框中不存在任何内容

终于找到了答案

实际上,将值输入telerik RAD日期选择器的唯一方法是通过javascript命令

var dateTextBox = driver.FindElement(By.Id("ctl00_Content_TxtDateOfBirth_datePicker_dateInput"));

dateTextBox.Click();

dateTextBox.SendKeys(date);

driver.FindElement(By.Id("btnSave")).Click();

首先,我为java脚本命令格式化一个字符串,然后运行runScript方法,该方法只执行脚本。希望这能帮助将来遇到这种情况的任何BAT开发人员。

您是否可能在文本字段中输入了错误的日期格式?日期格式应该是什么,您可以将日期输入代码段吗?我可以手动运行测试传递给send keys方法的字符串与我输入的2015年5月1日相同。我还尝试了2015年5月1日,这是Selenium在通过IDE记录测试时使用的日期格式。这两种格式都不起作用。另一件奇怪的事情是,该方法有时可以工作,但大多数时候它会清除文本框,因此当页面保存时,控件中没有日期。不,这两种方式都有问题。我只是通过单击命令,看看这是否根据其他堆栈交换帖子的建议解决了问题。
public void runScript(IWebDriver driver, String script)
{
    IJavaScriptExecutor js = driver as IJavaScriptExecutor;
    js.ExecuteScript(script);
}

public void setDatePicker(IWebDriver driver, String date, String Id)
{
    String script = string.Format("$find('{0}').set_selectedDate(new Date('{1}'))", Id, date);
    runScript(driver, script);
}