2015-05-13 23 views
1
var dateTextBox = driver.FindElement(By.Id("ctl00_Content_TxtDateOfBirth_datePicker_dateInput")); 

dateTextBox.Click(); 

dateTextBox.SendKeys(date); 

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

我有一個頁面,我有一個帶有文本框的Telerik日期控件。用戶在文本框中輸入一個日期並點擊保存按鈕。如何使用硒web驅動程序C#輸入日期字符串到telerik日期選擇器文本框?

由於某些原因,當我運行測試時,它會將日期輸入到文本框中,但是當它保存時會清除日期控件的文本框,因此日期控件文本框中不存在任何內容。

+2

是否可能在文本字段中輸入了錯誤的日期格式?日期格式應該是什麼,你可以把日期放到你的代碼片段中嗎? – sparkyShorts

+0

我可以手動運行測試我傳遞給發送鍵方法的字符串是相同的,我輸入2015年5月1日我也試過2015/5/1這是Selenium在記錄測試時使用的日期格式IDE都不起作用。另一個奇怪的事情是,該方法有時會起作用,但大多數情況下它會清除文本框,因此當頁面在控件中保存日期時無此功能。 – GuardTheGates

+0

不,它有兩種方法的問題,我只是把點擊命令,看看是否基於來自其他堆棧交換帖子的建議解決了問題。 – GuardTheGates

回答

0

終於想出了這個答案。

真的輸入的唯一方式一個值到Telerik的RAD日期選擇器是通過JavaScript命令

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); 
} 

首先I格式爲java腳本命令然後運行的runScript方法,該方法只是執行腳本的字符串。希望這有助於將來遇到此問題的未來BAT開發人員。

相關問題