Skip to content

Commit

Permalink
#5446 fix locators
Browse files Browse the repository at this point in the history
  • Loading branch information
pnatashap committed Apr 30, 2024
1 parent 220c7c9 commit 6a15de5
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 82 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,11 @@ public void changeDateDatePickerTest() {
+ date.minusMonths(1).getMonth().toString().substring(1).toLowerCase();

colorFirstDatePicker.has().date(date.format(dateFormatHeader));
colorFirstDatePicker.selectDay(Integer.toString(CHOSEN_DAY));
colorFirstDatePicker.clickDay(Integer.toString(CHOSEN_DAY));
//colorFirstDatePicker.has().dayOfMonth(Integer.toString(CHOSEN_DAY));
colorFirstDatePicker.selectDay(Integer.toString(CHOSEN_DAY_TWO));
colorFirstDatePicker.clickDay(Integer.toString(CHOSEN_DAY_TWO));
//colorFirstDatePicker.has().dayOfMonth(Integer.toString(CHOSEN_DAY_TWO));
colorFirstDatePicker.selectDay(Integer.toString(CHOSEN_DAY_THREE));
colorFirstDatePicker.clickDay(Integer.toString(CHOSEN_DAY_THREE));
//colorFirstDatePicker.has().dayOfMonth(Integer.toString(CHOSEN_DAY_THREE));
colorFirstDatePicker.toNextMonth();
//colorFirstDatePicker.has().month(nextMonth);
Expand All @@ -147,16 +147,16 @@ public void changeDateDatePickerTest() {

colorFirstDatePicker.changeYear();
colorFirstDatePicker.selectYear(Integer.toString(currentYear + 99));
//colorFirstDatePicker.has().year(Integer.toString(currentYear + 99));
colorFirstDatePicker.has().year(Integer.toString(currentYear + 99));

colorFirstDatePicker.changeYear();
colorFirstDatePicker.selectYear(Integer.toString(currentYear));
colorFirstDatePicker.changeYear();
colorFirstDatePicker.selectYear(Integer.toString(currentYear - 100));
//colorFirstDatePicker.has().year(Integer.toString(currentYear - 100));
colorFirstDatePicker.changeYearCornerButton();
colorFirstDatePicker.has().year(Integer.toString(currentYear - 100));
colorFirstDatePicker.changeYearCornerButton().click();
colorFirstDatePicker.selectYear(Integer.toString(currentYear));
//colorFirstDatePicker.has().year(Integer.toString(currentYear));
colorFirstDatePicker.has().year(Integer.toString(currentYear));
}

@Test(description = "Test checks date picker's color")
Expand All @@ -182,24 +182,24 @@ public void multipleChosenDatesDatePickerTest() {
List<String> firstlyActiveDaysOfMonth = multipleDatePicker.getAllActiveDaysOfMonth();
CHECKED_MULTIPLE_DATES.stream().forEach(elem -> {
if (!firstlyActiveDaysOfMonth.contains(elem)) {
multipleDatePicker.selectDay(elem);
multipleDatePicker.clickDay(elem);
}
});
firstlyActiveDaysOfMonth.addAll(CHECKED_MULTIPLE_DATES);
Set<String> allExpectedChosenDays = new HashSet<>(firstlyActiveDaysOfMonth);
multipleDatePicker.has().properSetOfActiveDays(allExpectedChosenDays);
multipleDatePicker.has().date(allExpectedChosenDays.size() + SELECTION_TEXT);
allExpectedChosenDays.stream().forEach(elem -> multipleDatePicker.selectDay(elem));
allExpectedChosenDays.stream().forEach(elem -> multipleDatePicker.clickDay(elem));
multipleDatePicker.has().date(EMPTY_DATE_FIELD);
multipleDatePicker.selectDay(Integer.toString(CHOSEN_DAY));
multipleDatePicker.clickDay(Integer.toString(CHOSEN_DAY));
// multipleDatePicker.has().date(LocalDate.of(Integer.parseInt(multipleDatePicker.getYear()),
// Month.valueOf(monthMultipleDP.toUpperCase(Locale.ROOT)), CHOSEN_DAY).format(dateFormatHeader));

multipleInMenuDatePicker.expand();
List<String> firstlyActiveDaysInMenu = multipleInMenuDatePicker.getAllActiveDaysOfMonth();
CHECKED_MULTIPLE_DATES.stream().forEach(elem -> {
if (!firstlyActiveDaysInMenu.contains(elem)) {
multipleInMenuDatePicker.selectDay(elem);
multipleInMenuDatePicker.clickDay(elem);
}
});
firstlyActiveDaysInMenu.addAll(CHECKED_MULTIPLE_DATES);
Expand All @@ -226,8 +226,8 @@ public void newsDatePickerTest() throws Exception {
@Test(description = "Test checks that dates in certain range are active")
public void testRangeDatePicker() {
rangeDatePicker.show();
rangeDatePicker.selectDay(Integer.toString(CHOSEN_DAY));
rangeDatePicker.selectDay(Integer.toString(CHOSEN_DAY_THREE));
rangeDatePicker.clickDay(Integer.toString(CHOSEN_DAY));
rangeDatePicker.clickDay(Integer.toString(CHOSEN_DAY_THREE));
rangeDatePicker.has().activeDatesInRange(CHOSEN_DAY, CHOSEN_DAY_THREE);
rangeDatePicker.has().date(RANGE_SELECTION_TEXT);
/*String dateFirstFormattedRangeDP = LocalDate.of(Integer.parseInt(rangeDatePicker.getYear()),
Expand All @@ -249,7 +249,7 @@ public void testReadOnlyDatePicker() {
} else {
checkedDay = "15";
}
readOnlyDatePicker.selectDay(Integer.toString(Integer.parseInt(checkedDay) - 1));
readOnlyDatePicker.clickDay(Integer.toString(Integer.parseInt(checkedDay) - 1));
//readOnlyDatePicker.has().dayOfMonth(firstlyActiveDay);
}

Expand Down Expand Up @@ -289,7 +289,7 @@ public void testActivePickerDatePicker() {
activePickerDatePicker.expand();
activePickerDatePicker.selectYear(CHOSEN_YEAR);
activePickerDatePicker.selectMonth(CHOSEN_MONTH);
activePickerDatePicker.selectDay(Integer.toString(CHOSEN_DAY));
activePickerDatePicker.clickDay(Integer.toString(CHOSEN_DAY));
activePickerDatePicker.has().resultDate(LocalDate.of(Integer.parseInt(CHOSEN_YEAR),
Month.valueOf(CHOSEN_MONTH.toUpperCase(Locale.ROOT)), CHOSEN_DAY).toString());
/*jdiAssert(activePickerDatePicker.getCode(), is("DATE"), "After some date in Active date picker " +
Expand All @@ -306,9 +306,9 @@ public void expandableDatePicker() {
pickerInMenuDatePicker.expand();
pickerInMenuDatePicker.is().expanded()
.and().has().resultDate(date.toString());
pickerInMenuDatePicker.selectDay(Integer.toString(CHOSEN_DAY));
pickerInMenuDatePicker.clickDay(Integer.toString(CHOSEN_DAY));
pickerInMenuDatePicker.has().resultDate(LocalDate.of(currentYear, currentMonth, CHOSEN_DAY).toString());
pickerInMenuDatePicker.selectDay(Integer.toString(CHOSEN_DAY_TWO));
pickerInMenuDatePicker.clickDay(Integer.toString(CHOSEN_DAY_TWO));
pickerInMenuDatePicker.has().resultDate(LocalDate.of(currentYear, currentMonth, CHOSEN_DAY_TWO).toString());
pickerInMenuDatePicker.toNextMonth();
//pickerInMenuDatePicker.has().month(nextMonth);
Expand All @@ -323,7 +323,7 @@ public void expandableDatePicker() {
pickerInMenuDatePicker.has().visibleChangeYearButton();
pickerInMenuDatePicker.changeYear();
pickerInMenuDatePicker.selectYear(Integer.toString(currentYear + 99));
//pickerInMenuDatePicker.has().year(Integer.toString(currentYear + 99));
pickerInMenuDatePicker.has().year(Integer.toString(currentYear + 99));
pickerInMenuDatePicker.has().visibleChangeYearButton();
buttonOkMenu.click();
pickerInMenuDatePicker.expand();
Expand All @@ -338,7 +338,7 @@ public void expandableDatePicker() {
public void formattedDateDatePickerTest() {
writableFormattingDatePicker.show();
writableFormattingDatePicker.expand();
writableFormattingDatePicker.selectDay(Integer.toString(CHOSEN_DAY));
writableFormattingDatePicker.clickDay(Integer.toString(CHOSEN_DAY));
writableFormattingDatePicker.has().resultDate(LocalDate.of(
currentYear, currentMonth, CHOSEN_DAY).format(formatterMMDDYYYY));
writableFormattingDatePicker.clear();
Expand All @@ -354,28 +354,28 @@ public void testFormattingWithExternalLibrariesDatePicker() {
formattedMomentJsDatePicker.has().emptyResultDate();
formattedMomentJsDatePicker.expand();
formattedMomentJsDatePicker.is().expanded();
formattedMomentJsDatePicker.selectDay(Integer.toString(CHOSEN_DAY));
formattedMomentJsDatePicker.clickDay(Integer.toString(CHOSEN_DAY));
formattedMomentJsDatePicker.has().properExternalLibFormattingDate(LocalDate.of(
currentYear, currentMonth, CHOSEN_DAY));
formattedDatesDatePicker.expand();
formattedDatesDatePicker.selectDay(Integer.toString(CHOSEN_DAY_THREE));
formattedDatesDatePicker.clickDay(Integer.toString(CHOSEN_DAY_THREE));
formattedDatesDatePicker.has().properExternalLibFormattingDate(LocalDate.of(
currentYear, currentMonth, CHOSEN_DAY_THREE));
}

@Test(description = "Test shows how to work with time pickers in different locales")
public void testInternationalizationDatePicker() {
public void testSwedenDatePicker() {
waitCondition(() -> swedishDatePicker.isVisible());
swedishDatePicker.changeMonth();
swedishDatePicker.hoverMonth(CHOSEN_MONTH_SWEDISH);
swedishDatePicker.has().visibleChangeYearButton();
swedishDatePicker.changeYear();
swedishDatePicker.selectYear(CHOSEN_YEAR);
//swedishDatePicker.has().year(CHOSEN_YEAR);
swedishDatePicker.has().year(CHOSEN_YEAR);
swedishDatePicker.selectMonth(CHOSEN_MONTH_SWEDISH);
List<String> shownSwedishDaysOfWeek = new ArrayList<>();
for (int i = CHOSEN_DAY; i < (CHOSEN_DAY + 7); i++) {
swedishDatePicker.selectDay(Integer.toString(i));
swedishDatePicker.clickDay(Integer.toString(i));
//swedishDatePicker.has().dayOfMonth(Integer.toString(i), new Locale("sv", "SE"));
Pattern swedishDayOfWeekPattern = Pattern.compile("^[a-zwåäöÅÄÖ]+");
Matcher matcher = swedishDayOfWeekPattern.matcher(swedishDatePicker.getDate());
Expand All @@ -398,18 +398,21 @@ public void testInternationalizationDatePicker() {
});
jdiAssert(shownSwedishMonths, is(SWEDISH_FULL_MONTHS),
"For Swedish picker: shown and expected full month names are not the same");
}

@Test(description = "Test shows how to work with time pickers in Chinese")
public void testChineseDatePicker() {
chineseDatePicker.changeMonth();
waitCondition(() -> chineseDatePicker.getChangeYearButton().isVisible());
chineseDatePicker.has().visibleChangeYearButton();
chineseDatePicker.changeYear();
chineseDatePicker.selectYear(CHOSEN_YEAR);
//chineseDatePicker.has().year(CHOSEN_YEAR, Locale.CHINESE);
chineseDatePicker.has().year(CHOSEN_YEAR);
chineseDatePicker.selectMonth(CHOSEN_MONTH_CHINESE);
//chineseDatePicker.has().month(CHOSEN_MONTH_CHINESE, Locale.CHINESE);
List<String> shownChineseDaysOfWeek = new ArrayList<>();
for (int i = CHOSEN_DAY; i < (CHOSEN_DAY + 7); i++) {
chineseDatePicker.selectDay(Integer.toString(i));
chineseDatePicker.clickDay(Integer.toString(i));
//chineseDatePicker.has().dayOfMonth(Integer.toString(i), Locale.CHINESE);
Pattern chineseDayOfWeekPattern = Pattern.compile(
"([\\d]+)([\\u4E00-\\u9FA5]+)(\\d+)([\\u4E00-\\u9FA5]+)");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.epam.jdi.light.vuetify.interfaces.asserts.ElevationAssert;
import com.epam.jdi.light.vuetify.interfaces.asserts.MeasurementAssert;
import com.epam.jdi.light.vuetify.interfaces.asserts.ThemeAssert;
import org.hamcrest.Matcher;
import org.hamcrest.Matchers;

import java.time.LocalDate;
Expand Down Expand Up @@ -47,6 +48,18 @@ public DatePickerAssert date(String date) {
return this;
}

@JDIAction(value = "Assert that '{name}' year field has value '{0}'", isAssert = true)
public DatePickerAssert year(String expYear) {
jdiAssert(element().year(), Matchers.is(expYear));
return this;
}

@JDIAction(value = "Assert that '{name}' year field has value '{0}'", isAssert = true)
public DatePickerAssert year(Matcher<String> matcher) {
jdiAssert(element().year(), matcher);
return this;
}

@JDIAction(value = "Assert that '{name}' field color is '{0}'", isAssert = true)
public DatePickerAssert color(String color) {
jdiAssert(element().color(), Matchers.is(color));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ public class DatePicker extends UIBaseElement<DatePickerAssert> implements
".//div[contains(@class,'v-date-picker-table--month')]/table";
private static final String YEAR = ".v-date-picker-title__year";
private static final String YEAR_LIST = "//ul";
private static final String YEAR_SMALL = "//div[@class='v-date-picker-title']/div";
private static final String RESULT_DATE_WITH_EXPANDER = "//input";
private static final String INPUT_FIELD = "//div[@class='v-input__slot']/div/input";
private static final String ICON_NEAR_DATE = "//div[contains(@class, 'v-input__prepend-outer')]/div";
Expand Down Expand Up @@ -91,22 +90,6 @@ private UIElement expander() {
}
}

private UIElement nextMonthButton() {
if (expander().isExist()) {
return expandedRoot().find(NEXT_MONTH);
} else {
return root().find(NEXT_MONTH);
}
}

private UIElement previousMonthButton() {
if (expander().isExist()) {
return expandedRoot().find(PREVIOUS_MONTH);
} else {
return root().find(PREVIOUS_MONTH);
}
}

protected UIElement getDay(final String day) {
if (expander().isExist()) {
return expandedRoot().find(By.xpath("//button/div[text()='" + day + "']"));
Expand All @@ -117,36 +100,20 @@ protected UIElement getDay(final String day) {
}

private UIElement mainDateField() {
if (expander().isExist()) {
return expandedRoot().find(MAIN_FIELD);
} else {
return root().find(MAIN_FIELD);
}
return getInnerElement(MAIN_FIELD);
}

private UIElement monthYearField() {
if (expander().isExist()) {
return expandedRoot().find(MONTH_YEAR_FIELD);
} else {
return root().find(MONTH_YEAR_FIELD);
}
return getInnerElement(MONTH_YEAR_FIELD);
}

private UIElement activeDayOfMonth() {
if (expander().isExist()) {
return expandedRoot().find(ACTIVE_DAY_OF_MONTH);
} else {
return root().find(ACTIVE_DAY_OF_MONTH);
}
return getInnerElement(ACTIVE_DAY_OF_MONTH);
}

@JDIAction("Get access to change month button of {name}")
public UIElement changeMonthButton() {
if (expander().isExist()) {
return expandedRoot().find(MONTH_YEAR_FIELD);
} else {
return root().find(MONTH_YEAR_FIELD);
}
return getInnerElement(MONTH_YEAR_FIELD);
}

protected UIElement getMonth(String month) {
Expand Down Expand Up @@ -188,14 +155,6 @@ private UIElement iconNearDate() {
return root().find(ICON_NEAR_DATE);
}

private UIElement changeYearSmallButton() {
if (expander().isExist()) {
return expandedRoot().find(YEAR_SMALL);
} else {
return root().find(YEAR_SMALL);
}
}

@JDIAction("Get {name}'s title with year, month and date")
public UIElement titleField() {
return root().find(TITLE_FIELD);
Expand All @@ -209,11 +168,19 @@ private List<UIElement> enabledDates() {
return root().finds(ENABLED_DATES);
}

private List<UIElement> allActiveDates() {
private List<UIElement> getInnerElements(String locator) {
if (expander().isExist()) {
return expandedRoot().finds(locator);
} else {
return root().finds(locator);
}
}

private UIElement getInnerElement(String locator) {
if (expander().isExist()) {
return expandedRoot().finds(ACTIVE_DAY_OF_MONTH);
return expandedRoot().find(locator);
} else {
return root().finds(ACTIVE_DAY_OF_MONTH);
return root().find(locator);
}
}

Expand Down Expand Up @@ -246,17 +213,18 @@ public void expand() {

@JDIAction("Click '{name}' next month button")
public void toNextMonth() {
nextMonthButton().click();
getInnerElement(NEXT_MONTH).click();
}

@JDIAction("Click '{name}' previous month button")
public void toPreviousMonth() {
previousMonthButton().click();
getInnerElement(PREVIOUS_MONTH).click();
}

@JDIAction("Select '{name}' day of month")
public void selectDay(final String date) {
@JDIAction("Click on '{name}' day of month")
public void clickDay(final String date) {
getDay(date).click();
waitFor(1);
}

@JDIAction("Get '{name}' shown month and year")
Expand Down Expand Up @@ -294,6 +262,10 @@ public void selectYear(final String year) {
getYear(year).click();
}

public String year() {
return getInnerElement(YEAR).text();
}

@JDIAction("Get '{name}' result date in the field")
public String getResultDate() {
return resultDateField().getText();
Expand Down Expand Up @@ -326,9 +298,9 @@ public String getDateFieldReadonlyAttribute() {
return inputField().attr("readonly");
}

@JDIAction("Click '{name}' small change year button in the upper left corner")
public void changeYearCornerButton() {
changeYearSmallButton().click();
@JDIAction("Get '{name}' small change year button in the upper left corner")
public UIElement changeYearCornerButton() {
return getInnerElement(YEAR);
}

@Override
Expand Down Expand Up @@ -367,7 +339,7 @@ public List<UIElement> getDisabledDatesElements() {

@JDIAction("Get all '{name}' active days of month")
public List<String> getAllActiveDaysOfMonth() {
return allActiveDates().stream().map(elem
return getInnerElements(ACTIVE_DAY_OF_MONTH).stream().map(elem
-> elem.getText()).collect(Collectors.toList());
}

Expand Down

0 comments on commit 6a15de5

Please sign in to comment.