Как датировать в сборщике данных, используя селен, где каландр по умолчанию выбирает год? - PullRequest
0 голосов
/ 09 января 2019

Нажмите 1 в поле даты

Нажмите 2 после выбора года

Нажмите 3 после выбора месяца

Мне нужно выбрать дату из DatePicker. Поведение пользователя DatePicker выглядит следующим образом: 1. Нажмите на поле Дата. 2. Он просит пользователя выбрать год. 3. При выборе года пользователю предлагается выбрать месяц. 4. При выборе месяца он запрашивает у пользователя дату в календаре.

Я пытался использовать следующие подходы: Подход 1: Попытка ввести значение как SendKeys без разделителя, а затем нажать клавишу Tab, используя KEYS.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 голосов
/ 09 января 2019

Не 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);

Если кто-то еще знает конструктивный способ решения этой проблемы, поделитесь им с нами.

0 голосов
/ 09 января 2019

вы можете ввести значение непосредственно на вход, обычно требуется косая черта / разделитель

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

или с использованием API DatePicker setDate и JavascriptExecutor

(JavascriptExecutor) driver.executeScript("$('#datepicker_id_or_class').datepicker('setDate', '01/05/2001')");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...