package com.jquery.datepicker.locators; import com.algocrafts.locators.Locators; import com.algocrafts.pages.Page; import com.algocrafts.selenium.Element; import com.algocrafts.selenium.Locator; import static com.algocrafts.converters.GetText.TEXT; import static com.algocrafts.converters.Ordinal.ORDINAL; import static com.algocrafts.converters.StringToInt.PARSE_INT; import static com.algocrafts.converters.StringToMonth.TO_MONTH; import static com.algocrafts.locators.Locators.element; import static com.algocrafts.selectors.ClassName.*; import static com.algocrafts.selectors.Id.UI_DATEPICKER_DIV; public enum CalendarIntegerLocator implements Locator<Page, Integer> { /** * Locate the integer value representing displayed year on a calendar */ DISPLAYED_YEAR( Locators.<Page>element(UI_DATEPICKER_DIV) .andThen(element(UI_DATEPICKER_YEAR)) .andThen(TEXT) .andThen(PARSE_INT) ), /** * Locate the integer value representing displayed month on a calendar */ DISPLAYED_MONTH( ORDINAL.compose(TO_MONTH) .compose(TEXT) .compose(Locators.<Element>element(UI_DATEPICKER_MONTH)) .compose(Locators.<Page>element(UI_DATEPICKER_DIV)) ); private final Locator<Page, Integer> locator; CalendarIntegerLocator(Locator<Page, Integer> locator) { this.locator = locator; } @Override public Integer locate(Page page) { return locator.locate(page); } }