如何使用硒在datpicker中进行日期约会,其中日历首先默认为Year selection?

时间:2019-01-09 11:56:41

标签: selenium selenium-webdriver datepicker

Click 1 on Date Field

Click 2 after Year Selection

Click 3 after month selection

我需要从DatePicker中选择日期。 datepicker用户行为如下: 1.单击日期字段。 2.要求用户选择年份。 3.在选择年份时,它要求用户选择月份。 4.选择Om月,它要求用户在日历视图中选择日期。

我尝试使用以下方法: 方法1:尝试输入不带分隔符的值作为SendKeys,然后使用KEYS.Tab按下Tab键

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

方法2:尝试单击日期字段,然后单击“年份”,然后单击“月份”,最后单击日期。以下是该代码:

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

请让我知道如何处理此类DatePicker并从中选择日期。

2 个答案:

答案 0 :(得分:0)

您可以直接在输入中输入值,通常需要使用斜杠/分隔符

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

或使用datepicker API setDateJavascriptExecutor

(JavascriptExecutor) driver.executeScript("$('#datepicker_id_or_class').datepicker('setDate', '01/05/2001')");

答案 1 :(得分:0)

不是200%可以肯定,如果这是最好的方法,但是使用WebElements为我提供了获取日期的解决方法。以下是我使用的代码段:

SELECT aaa,
       bbb,
       ccc,
       ppp
       FROM (SELECT aaa,
                    bbb,
                    ccc,
                    count(*) OVER (PARTITION BY title) ppp
                    FROM my_tabel
                    WHERE aaa IS NOT NULL
                          AND bbb = 'SOMETHING') x
       WHERE ppp > 1;

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