2011-11-28 96 views
4

selenium web驅動程序如何爲特定日期字段選擇一個jQuery datepicker-UI日期。 1)我已經嘗試使用Jscript設置日期..但是,日期msut從jquery彈出窗口中選擇,以獲得提交的表單。selenium web驅動程序從jquery datepicker -i中選擇日期

請建議一些方法自動選擇日期並將選定的值發佈到日期字段中。

謝謝

回答

2

datefield是一個正常的文本輸入字段。所以,你可以做的SendKeys到日期輸入字段以正確的格式是這樣的:

// Find the text input element by its name 
WebElement element = driver.findElement(new ByIdOrName("datefield"))); 

// Enter a date in your format 
element.sendKeys("01/01/2009"); 
+0

提供時,這似乎不會調用'onSelect()'方法。 – Manfred

3
driver.findElement(By.id("datepicker")).clear(); 
    driver.findElement(By.id("datepicker")).sendKeys(""); // This will add focus and open the Date picker 
    String Year = driver.findElement(By.cssSelector("span.ui-datepicker-year")).getText();  //This will give you Year 
    String month = driver.findElement(By.cssSelector("span.ui-datepicker-month")).getText();  //This will give you Month 

    driver.findElement(By.cssSelector("span.ui-icon.ui-icon-circle-triangle-e")).click(); // Click for Next Month 
    String SelectedDate = driver.findElement(By.cssSelector(".ui-state-highlight")).getText();  // This will get you the selected Date 

    driver.findElement(By.cssSelector("span.ui-icon.ui-icon-circle-triangle-w")).click();  // Click for Previos Month 
    driver.findElement(By.linkText("6")).click(); // Instead of 6 use value date which you want to select. 

希望這有助於你

感謝
維沙爾

1

我發現了一些聯繫較少比最佳實施。使用Selenium的Select類並不難。下面是工具,我可以了

public static void selectDateFromJqueryDatepicker(WebElement datePickerDiv, int expYear, int expMonth, int expDay) { 
    //handle 2 digit years 
    if(expYear < 100) 
     expYear += 2000; 

    //select the given year 
    Select yearSel= new Select(datePickerDiv.findElement(By.className("ui-datepicker-year"))); 
    yearSel.selectByValue(String.valueOf(expYear)); 

    //select the given month 
    Select monthSel= new Select(datePickerDiv.findElement(By.className("ui-datepicker-month"))); 
    monthSel.selectByValue(String.valueOf(expMonth - 1)); //value start @ 0 so we need the -1 

    //get the table 
    WebElement calTable= datePickerDiv.findElement(By.className("ui-datepicker-calendar")); 
    //click on the correct/given cell/date 
    calTable.findElement(By.linkText(String.valueOf(expDay))).click(); 
} 

你只需要年/月/日,以傳遞整數格式和外日期選擇器的div。在我的情況下,我發現它是這樣的

WebElement datePickerDiv= findElement(By.id("ui-datepicker-div")); 
+0

也許這個工作時,答案是給出,但截至目前jqueryui的日期選擇器沒有選擇元素的年/月。 –

0

我有一個網頁,它有2個用於選擇每個日期的ui日期選擇器。我使用JavaScript和它的工作
My page

數1:ID:POcheck_D ...... 2號:ID:FROM日期........數3:ID:TODATE

public void TestCase1() 
    { 
     //open brower 
     driver = new InternetExplorerDriver(); 
     driver.Url = "xxxYourPagexxxx.com"; 
     driver.Navigate(); 

     //click check box 
     driver.FindElement(By.Id("POcheck_D")).Click(); 

     //insert value to ui-datepicker 
     ((IJavaScriptExecutor)driver).ExecuteScript("$('#fromDate').val('01/01/2016').change();"); 
     ((IJavaScriptExecutor)driver).ExecuteScript("$('#toDate').val('31/12/2017').change();"); 

     //click button search 
     driver.FindElement(By.Id("btn_search")).Click(); 
    } 
相關問題