|
|
|
@ -23,14 +23,19 @@ public class HomePage {
|
|
|
|
|
private Waiters waiters;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Конструктор класса HomePage, который инициализирует драйвер WebDriver и объект Waiters.
|
|
|
|
|
* Конструктор используется для создания экземпляра класса HomePage, который представляет
|
|
|
|
|
* домашнюю страницу веб-сайта и предоставляет методы для взаимодействия с элементами на этой странице.
|
|
|
|
|
* Конструктор класса HomePage, который инициализирует драйвер WebDriver и
|
|
|
|
|
* объект Waiters.
|
|
|
|
|
* Конструктор используется для создания экземпляра класса HomePage, который
|
|
|
|
|
* представляет
|
|
|
|
|
* домашнюю страницу веб-сайта и предоставляет методы для взаимодействия с
|
|
|
|
|
* элементами на этой странице.
|
|
|
|
|
*
|
|
|
|
|
* @param driver экземпляр WebDriver, используемый для взаимодействия с веб-страницей.
|
|
|
|
|
* @param driver экземпляр WebDriver, используемый для взаимодействия с
|
|
|
|
|
* веб-страницей.
|
|
|
|
|
*/
|
|
|
|
|
public HomePage(WebDriver driver) {
|
|
|
|
|
// Инициализация драйвера WebDriver для использования в текущем экземпляре класса
|
|
|
|
|
// Инициализация драйвера WebDriver для использования в текущем экземпляре
|
|
|
|
|
// класса
|
|
|
|
|
this.driver = driver;
|
|
|
|
|
// Создание нового объекта Waiters с переданным драйвером для ожидания элементов
|
|
|
|
|
this.waiters = new Waiters(driver);
|
|
|
|
@ -38,19 +43,21 @@ public class HomePage {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Метод для перехода на главную страницу сайта Avito, используя WebDriver.
|
|
|
|
|
* Метод выполняет переход на указанный URL, который соответствует странице с объявлениями о транспортных средствах в Пензе.
|
|
|
|
|
* Метод выполняет переход на указанный URL, который соответствует странице с
|
|
|
|
|
* объявлениями о транспортных средствах в Пензе.
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
@Step("Переход на главную страницу")
|
|
|
|
|
public void openAvito() {
|
|
|
|
|
public void openAvito(String url) {
|
|
|
|
|
// Переход на указанный URL с помощью WebDriver
|
|
|
|
|
driver.get("https://www.avito.ru/penza/transport?cd=1");
|
|
|
|
|
driver.get(url);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Выбор категории "Оргтехника и расходники" в пользовательском интерфейсе.
|
|
|
|
|
* Метод выполняет последовательность действий для выбора категории и подкатегории.
|
|
|
|
|
* Метод выполняет последовательность действий для выбора категории и
|
|
|
|
|
* подкатегории.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
@Step("Выбор категории 'Оргтехника и расходники'")
|
|
|
|
@ -79,7 +86,8 @@ public class HomePage {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Метод для ввода запроса "Принтер" в поле поиска на веб-странице.
|
|
|
|
|
* Метод выполняет последовательность действий, включая ожидание доступности поля поиска,
|
|
|
|
|
* Метод выполняет последовательность действий, включая ожидание доступности
|
|
|
|
|
* поля поиска,
|
|
|
|
|
* ввод запроса и подтверждение ввода с помощью клавиши Enter.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
@ -99,7 +107,8 @@ public class HomePage {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Метод для активации чекбокса "Новые" на веб-странице.
|
|
|
|
|
* Метод выполняет последовательность действий, включая ожидание доступности чекбокса и его активацию.
|
|
|
|
|
* Метод выполняет последовательность действий, включая ожидание доступности
|
|
|
|
|
* чекбокса и его активацию.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
@Step("Активировать чекбокс “Новые”")
|
|
|
|
@ -115,14 +124,17 @@ public class HomePage {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Метод для автоматизации действия по открытию выпадающего списка регионов на странице.
|
|
|
|
|
* Метод для автоматизации действия по открытию выпадающего списка регионов на
|
|
|
|
|
* странице.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
@Step("Кликнуть по выпадающему списку регионов")
|
|
|
|
|
public void openLocationChooser() {
|
|
|
|
|
// Определение селектора для элемента, представляющего выпадающий список регионов
|
|
|
|
|
// Определение селектора для элемента, представляющего выпадающий список
|
|
|
|
|
// регионов
|
|
|
|
|
final var changeLocationSelector = "[data-marker='search-form/change-location']";
|
|
|
|
|
// Ожидание, пока элемент станет кликабельным, чтобы избежать ошибок при попытке клика
|
|
|
|
|
// Ожидание, пока элемент станет кликабельным, чтобы избежать ошибок при попытке
|
|
|
|
|
// клика
|
|
|
|
|
waiters.waitForElementToBeClickable(changeLocationSelector);
|
|
|
|
|
// Нахождение элемента по селектору и выполнение клика по нему
|
|
|
|
|
driver.findElement(By.cssSelector(changeLocationSelector)).click();
|
|
|
|
@ -130,7 +142,8 @@ public class HomePage {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Вводит регион "Владивосток" в соответствующее поле на странице.
|
|
|
|
|
* Метод автоматизирует процесс ввода региона "Владивосток" в поле поиска региона на странице,
|
|
|
|
|
* Метод автоматизирует процесс ввода региона "Владивосток" в поле поиска
|
|
|
|
|
* региона на странице,
|
|
|
|
|
* включая очистку поля, ввод нового значения и выбор предложенного варианта.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
@ -178,7 +191,8 @@ public class HomePage {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Нажимает на кнопку "Показать n объявлений" на странице.
|
|
|
|
|
* Метод автоматизирует действие пользователя по нажатию на кнопку "Показать n объявлений".
|
|
|
|
|
* Метод автоматизирует действие пользователя по нажатию на кнопку "Показать n
|
|
|
|
|
* объявлений".
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
@Step("Нажать на кнопку “Показать n объявлений”")
|
|
|
|
@ -193,7 +207,8 @@ public class HomePage {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Выбирает "Дороже" в выпадающем списке сортировки на странице.
|
|
|
|
|
* Метод автоматизирует процесс выбора опции "Дороже" в выпадающем списке сортировки,
|
|
|
|
|
* Метод автоматизирует процесс выбора опции "Дороже" в выпадающем списке
|
|
|
|
|
* сортировки,
|
|
|
|
|
* что позволяет сортировать объявления по цене в порядке убывания.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
@ -213,7 +228,8 @@ public class HomePage {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Выводит в консоль значение цены первых 5 товаров на странице.
|
|
|
|
|
* Данный метод автоматизирует процесс вывода в консоль значений цен первых 5 товаров.
|
|
|
|
|
* Данный метод автоматизирует процесс вывода в консоль значений цен первых 5
|
|
|
|
|
* товаров.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
@Step("Вывести в консоль Значение цены первых 5 товаров")
|
|
|
|
|