-1

Click 1 on Date Field

Click 2 after Year Selection

Click 3 after month selection

I need to select date from a DatePicker. The datepicker user behavior is as below : 1. Click on the Date field. 2. It asks user to select the year. 3. On year selection, it asks user to select month. 4. Om month selection it asks user to select the date in calender view.

I have tried to use below approaches : Approach 1 : Trying to enter value as SendKeys without delimiter and then pressing Tab key using KEYS.Tab

WebElement dob = driver.findElement(DOB);
Actions Action3 = new Actions(driver);
Action3.moveToElement(dob).click().perform();
dob.sendKeys("01052001");
dob.sendKeys(Keys.TAB);

Approach 2 : Trying to Click on date field, then on Year, then on Month and finally on the date. Below is the Code for that :

driver.findElement(Year).click();
Thread.sleep(2000);
driver.findElement(Month).click();
Thread.sleep(2000);
driver.findElement(Date).click();
Thread.sleep(2000);

Do let me know how to handle such DatePicker and select the date from it.

4

2 回答 2

0

可以直接输入值到输入,通常需要斜线/分隔符

WebElement dob = driver.findElement(DOB);
dob.sendKeys("01/05/2001");

或使用 datepicker APIsetDateJavascriptExecutor

(JavascriptExecutor) driver.executeScript("$('#datepicker_id_or_class').datepicker('setDate', '01/05/2001')");
于 2019-01-09T13:15:14.223 回答
0

不是 200% 确定这是否是最好的方法,但使用 WebElements 为我提供了获取日期的解决方法。下面是我使用的代码片段:

//This will select Year first
WebElement year = driver.findElement(Year);
Actions Action4 = new Actions(driver);
Action4.moveToElement(year).click().perform();
Thread.sleep(2000);
//This will select the month
WebElement month = driver.findElement(Month);
Actions Action5 = new Actions(driver);
Action5.moveToElement(month).click().perform();
Thread.sleep(2000);
//This will select the Date
WebElement anydate = driver.findElement(Date);
Actions Action6 = new Actions(driver);
Action6.moveToElement(anydate).click().perform();
Thread.sleep(2000);

如果其他人知道处理此问题的结构方式,请与我们分享。

于 2019-01-09T14:30:05.473 回答