selenium web驅動程序如何爲特定日期字段選擇一個jQuery datepicker-UI日期。 1)我已經嘗試使用Jscript設置日期..但是,日期msut從jquery彈出窗口中選擇,以獲得提交的表單。selenium web驅動程序從jquery datepicker -i中選擇日期
請建議一些方法自動選擇日期並將選定的值發佈到日期字段中。
謝謝
selenium web驅動程序如何爲特定日期字段選擇一個jQuery datepicker-UI日期。 1)我已經嘗試使用Jscript設置日期..但是,日期msut從jquery彈出窗口中選擇,以獲得提交的表單。selenium web驅動程序從jquery datepicker -i中選擇日期
請建議一些方法自動選擇日期並將選定的值發佈到日期字段中。
謝謝
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");
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.
希望這有助於你
感謝
維沙爾
我發現了一些聯繫較少比最佳實施。使用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"));
也許這個工作時,答案是給出,但截至目前jqueryui的日期選擇器沒有選擇元素的年/月。 –
我有一個網頁,它有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();
}
提供時,這似乎不會調用'onSelect()'方法。 – Manfred