Java автотесты page object selenide
Ребят всем привет. Я джун джуном в атоматизации))Применяю page object на Java.Подскажите у меня есть страница с шестью обязательными полями.И в будущем переменных с данными будет еще больше.Мне нужно провести шесть тестов, вставляя каждый раз данные в эти поля.Каждый раз когда в какое то поле я намеренно не передаю данные должна быть проверка на обязательность этого поля.Может есть какой то механизм в который я смогу занести все свои инициализированные переменные с данными.И в каждом методе их применять на обязтельность а не копипастить.Вот у меня файл степы.В TrackerPage у меня есть сценарий чтобы применять эти методы с данными.Спасибо)))
package stepdefs;
import Pages.AutorizationPage;
import Pages.TrackerPage;
import Pages.UsersPage;
import com.codeborne.selenide.Selenide;
import cucumber.api.java.ru.Дано;
import cucumber.api.java.ru.И;
import cucumber.api.java.ru.Когда;
import cucumber.api.java.ru.Тогда;
import java.util.List;
import java.util.Map;
public class TrackerTestSteps {
private AutorizationPage autorizationPage = Selenide.page(AutorizationPage.class);
private TrackerPage trackerPage = Selenide.page(TrackerPage.class);
private UsersPage usersPage = Selenide.page(UsersPage.class);
@Дано("^Пользователь авторизуется на сайте трекера$")
public void authorize() {
autorizationPage.clickAuth();
autorizationPage.switchWindow(1);
autorizationPage.setMailInput("asdasddasd");
autorizationPage.clickNext();
autorizationPage.setPassword("adsdasda");
autorizationPage.clickNext();
autorizationPage.switchWindow(0);
}
@И("^Пользователь создает задачу с (параметрами|некорретными параметрами)$")
public void createTask(String s,Map<String, String> map) {//входной параметр
trackerPage.setNameInput(map.get("Название"));
trackerPage.setStartTime(map.get("Время начала"));
trackerPage.setEndTime(map.get("Время конец "));
trackerPage.setProjectName(map.get("Проект"));
trackerPage.setInputLink(map.get("Ссылка на задачу"));
trackerPage.setDescription(map.get("Описание задачи"));
trackerPage.clickAddTimeButton();
}
@Тогда("^задача создана корректно$")
public void verifyTask() {
trackerPage.verifyTask();
}
@Тогда("^авторизация прошла успешно$")
public void verifyAuth() {
autorizationPage.verifyAuth();
}
@Когда("^Пользователь переходит на страницу Пользователи$")
public void goToUsersPage() {
trackerPage.clickMenuButton();
trackerPage.clickUserPage();//клик на юзерпейдж
}
@И("^Вводит в поле поиска (.*)$")
public void writeTextSearchField(String text) {
usersPage.setSearchField(text);//вводим текст в searchField
}
@Тогда("^результат поиска содержит (.*)$")
public void searchResult(String text) {
usersPage.verifySearch(text);
}
@Тогда("^пользователь ищет по параметрам и убеждается в успехе$")
public void verifySuccessSearch(List<String> textList) {
for (String s:textList){
usersPage.setSearchField(s);
usersPage.verifySearch(s);
}
}
@Тогда("^пользователь получает уведомление о неккорректной ссылке$")
public void verifyErrorNotification () {
trackerPage.verifyErrorNotification();
}
}