Дорый день! У меня есть тестовое задание. Кейс сбора данных:
Данные спарсил с помощью selenide(selenium).
Подскажите какую структуру(архитектуру) классов применить ?
Проект java. https://github.com/genabitgit/ParseData
Сейчас структура такая:
public class Main {
public static void main(String[] args) throws IOException {
ExcelDataConfig excelDataConfig = new ExcelDataConfig();
SetUpBrowser browser = new SetUpBrowser();
String startDataFrom = excelDataConfig.getData(0, 0);
String startDataTo = excelDataConfig.getData(0, 1);
String endDataFrom = excelDataConfig.getData(1, 0);
String endDataTo = excelDataConfig.getData(1, 1);
browser.startBrowser();
var searchPage = browser.openSearchPage();
//submit search request
searchPage.entersTheStartDateOfPublication(startDataFrom, startDataTo);
searchPage.entersTheEndDateOfPublication(endDataFrom, endDataTo);
searchPage.pressShowButton();
searchPage.pressAllButton();
searchPage.pressDisplayTypeRow();
//store results
var pagesCount = searchPage.getPagesCount();
for (int i = 2; i < pagesCount; i++) {
var result = searchPage.showResultsPage(i);
}
searchPage.saveReport();
}
}
В твоём случае ExcelDataConfig
и SetUpBrowser
могут иметь статические методы и экземпляры создавать вообще не надо.
Вот если, например ты в них будешь передавать какое-то состояние, например, путь к файлу настроек и URL страницы, то твой подход имеет смысл.
И мне не нравится SearchPage
- ты нигде не используешь url
. По-идее, методы этого класса тоже можно сделать статическими и обращаться напрямую, например: SearchPage.pressAllButton()
;
Ещё. SetUpBrowser
и SearchPage
возможно стоит объединить вместе. Например, как SearchPage
. Этот код будет статическим блоком:
static {
Configuration.browser = "firefox";
Configuration.startMaximized = true;
clearBrowserCache();
}
Ещё. В пакетах не принято использовать большие буквы. Например, config
, page
, report
.
Вообще, в рамках такого проекта об архитектуре можно сильно не грустить.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пришлось немного подхимичить код чтобы при загрузке на сайт универа не одинаков былВ общем где тут дописать чтобы при двух массивах с одним...
У меня Maven-проектЯ положила иконки в папку src\main\resources, прописала такие же пути к ним, но созданный jar-архив их не видит
У меня есть метод lambda на JAVAКогда я посылаю запрос методом OPTIONS, я поучаю {"message":"Missing Authentication Token"}