package com.jquery.datepicker; import com.algocrafts.clickables.Url; import com.algocrafts.datepicker.CalendarPicker; import com.algocrafts.datepicker.Datepicker; import com.algocrafts.locators.ElementLocator; import com.algocrafts.pages.Page; import com.algocrafts.selenium.Browser; import com.jquery.datepicker.locators.JQueryDayPicker; import java.time.Month; import static com.algocrafts.conditions.PagePredicates.JQUERY_CALENDAR_NOT_DISPLAYED; import static com.algocrafts.converters.GetText.VALUE; import static com.algocrafts.selectors.Id.DATE_PICKER; import static com.jquery.datepicker.locators.CalendarClicker.*; import static com.jquery.datepicker.locators.CalendarIntegerLocator.DISPLAYED_MONTH; import static com.jquery.datepicker.locators.CalendarIntegerLocator.DISPLAYED_YEAR; public class JQueryDatePickerPage extends Page { public JQueryDatePickerPage(Browser<?> browser) { super(browser, new Url<>(browser, "http://jqueryui.com/datepicker/")); } private final Datepicker datepicker = new Datepicker(this, TRIGGER, new CalendarPicker(this, PREVIOUS_YEAR, NEXT_YEAR, DISPLAYED_YEAR), new CalendarPicker(this, PREVIOUS_MONTH, NEXT_MONTH, DISPLAYED_MONTH), new JQueryDayPicker(this, JQUERY_CALENDAR_NOT_DISPLAYED) ); public void pick(Month month, int day, int year) { datepicker.pick(month, day, year); } public String getDate() { return new ElementLocator<Page>(DATE_PICKER) .andThen(VALUE) .locate(this); } }