package com.jquery.datepicker.locators; import com.algocrafts.converters.FrameLocator; import com.algocrafts.locators.Locators; import com.algocrafts.pages.Page; import com.algocrafts.selenium.Locator; import static com.algocrafts.converters.ElementFunctions.CLICK; import static com.algocrafts.locators.Locators.element; import static com.algocrafts.selectors.ClassName.*; import static com.algocrafts.selectors.Id.DATE_PICKER; import static com.algocrafts.selectors.Id.UI_DATEPICKER_DIV; public enum CalendarClicker implements Locator<Page, Void> { TRIGGER( new FrameLocator(0) .andThen(element(DATE_PICKER)).andThen(CLICK) ), NEXT_MONTH( Locators.<Page>element(UI_DATEPICKER_DIV) .andThen(element(UI_DATEPICKER_NEXT)).andThen(CLICK) ), PREVIOUS_MONTH( Locators.<Page>element(UI_DATEPICKER_DIV) .andThen(element(UI_DATEPICKER_PREV)).andThen(CLICK) ), NEXT_YEAR ( (Page browser) -> { for (int i = 0; i < 12; i++) { NEXT_MONTH.locate(browser); } return null; } ), PREVIOUS_YEAR ( (Page browser) -> { for (int i = 0; i < 12; i++) { PREVIOUS_MONTH.locate(browser); } return null; } ), CLOSE_BUTTON( Locators.<Page>element(UI_DATEPICKER_DIV) .andThen(element(UI_DATEPICKER_CLOSE)).andThen(CLICK) ); private final Locator<Page, Void> locator; CalendarClicker(Locator<Page, Void> locator) { this.locator = locator; } @Override public Void locate(Page page) { return locator.locate(page); } }