Можно ли использовать статические методы для получения элементов в page object model espresso

Я пишу page object model с использованием библиотеки espresso. Есть базовый класс в которм я создал основные методы работы с элементами:

public class EspressoBaseTest {

public void clickButton(Integer resourceId) {
    Allure.step("Клик по кнопке c id: " + resourceId);
    onView((withId(resourceId))).perform(click());
}

public void clickButtonWithScroll(Integer resourceId) {
    Allure.step("Клик со скроллом по кнопке c id: " + resourceId);
    onView((withId(resourceId))).perform(scrollTo(), click());
}

public void checkById(Integer resourceId) {
    Allure.step("Проверка отображения элемента на странице c id: " + resourceId);
    onView(withId(resourceId)).check(matches(isDisplayed()));
}}

Затем наследуюсь в классах страниц, например страница новостей:

public class NewsPage extends EspressoBaseTest {
private final int newsList = R.id.news_list_recycler_view;

public static int getEditButtonId() {
    return R.id.edit_news_material_button;
}

public static int getAddNewsButtonId() {
    return R.id.add_news_image_view;
}

public void checkAddedNews(String description, int position) {
    Allure.step("Проверка существования добавленной новости c названием: " + description);
    onView(withId(newsList)).perform(actionOnItemAtPosition(position, click()));
    onView(allOf(withId(R.id.news_item_description_text_view), withText(description))).check(matches(isDisplayed()));
}

}

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

   public static int getAddNewsButtonId() {
    return R.id.add_news_image_view;
}

и в тесте соответственно использовать так:

 newsPage.clickButton(NewsPage.getEditButtonId());

Чтобы было понятнее я создал класс EspressoBaseTest , чтобы вынести в него общие методы для работы с элементами, а уже какие то специальные разместил внутри классов страниц.


Ответы (0 шт):