Selenium web驱动程序从jquery datepicker-Ui中选择日期

selenium Web驱动程序如何为特定日期字段选择jquery datepicker-UI日期。 1)我已尝试使用Jscript设置日期..但是,从jquery弹出窗口中选择日期msut以获取提交的表单。

请建议一些自动选择日期的方法,并将所选值发布到日期字段中。

谢谢

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. 

希望这有助于你

谢谢
维沙尔

日期字段是普通文本输入字段。 所以你可以用正确的格式对日期输入字段执行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"); 

我找到了一些不太优化的实现的链接。 使用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(); } 

您只需要以整数格式和外部datepicker div传递年/月/日。 在我的情况下,我发现它是这样的

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

我有一个网页,它有2个ui-date选择器,用于选择每个日期。 我使用javascript,它的工作
我的页面

编号1:id:POcheck_D ……编号2:id:fromDate ……..编号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(); }