Задание реализовать тестовый фреймворк на Java + Selenium + TestNG/JUnit

 

Описание действия Ожидаемое поведение системы
Перейти по адресу https://market.yandex.ru/ Осуществлен переход на https://market.yandex.ru/
Нажать по ссылке “Каталог”
Открыт “Каталог”, представлены блоки: основные категории товаров, “Популярные товары”, “Вас также могут заинтересовать”, “Вы смотрели”
Перейти по в раздел “Электроника” -> “Мобильные телефоны”
Открыт раздел “Мобильные телефоны”, в категории “Популярные” и “Новинки” представлены 3 девайса
Нажать по “расширенный поиск” блока выбора по параметрам
Представлен раздел “Мобильные телефоны”, справа доступен блок параметров
Ввести Цену, руб. “от” значение 5125 Значение успешно проставлено в поле
Ввести Цену, руб. “до” значение 10123 Значение успешно проставлено в поле
Кликнуть на чекбокс “В продаже” Значение чекбокса установлено на “Выбрано”
Раскрыть блок “Платформа” Успешно раскрыт блок параметра “Платформа”
Кликнуть на селектбокс “Android” Значение селектбокса установлено на “Выбрано”
Случано выбрать 3 устройства из представленных на странице, имеющих рейтинг от “3,5” до “4,5”, и вывести в лог информацию в формате “номер девайса на странице – наименование девайса – стоимость девайса (от-до)”

 

Solution:

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
 
import org.junit.Test;
 
import UIMap.AdvancedSearch;
import UIMap.SearchResult;
import UIMap.SearchResultList;
import UIMap.YandexMarket;
 
public class TestClass {
 
    @Test
    public void SearchOnMarket()
    {
        new YandexMarket() {{
            OpenScreen();
            ClickByLink("Каталог");
            ClickByLink("Электроника");
            ClickByLink("Мобильные телефоны");
            ClickByLink("расширенный поиск →");
        }};
         
        new AdvancedSearch() {{
            Price.Range(5125, 10123);
            InStock.SetTrue();
            ExpandMenu("Платформа");
            GetMenuItemCheckBox("Платформа", "Android").SetTrue();
        }};
         
        new SearchResult() {{
            Random n = new Random();
            List<SearchResultList> filteredResult = new ArrayList<SearchResultList>();
            for (SearchResultList item : Items) {
                if (item.Rating >= 3.5 && item.Rating <= 4.5) {
                    filteredResult.add(item);
                }
            }
             
            Integer index = n.nextInt(filteredResult.size() + 1);
            SearchResultList item1 = filteredResult.get(index);
            System.out.format("%d - %s\t%s\t%s\n", item1.Number, item1.Name, item1.PriceFrom, item1.PriceTo);
            filteredResult.remove(index);
             
            index = n.nextInt(filteredResult.size() + 1);
            SearchResultList item2 = filteredResult.get(index);
            System.out.format("%d - %s\t%s\t%s\n", item2.Number, item2.Name, item2.PriceFrom, item2.PriceTo);
            filteredResult.remove(index);
             
            index = n.nextInt(filteredResult.size() + 1);
            SearchResultList item3 = filteredResult.get(index);
            System.out.format("%d - %s\t%s %s\n", item3.Number, item3.Name, item3.PriceFrom, item3.PriceTo);
            filteredResult.remove(index);
        }};
    }
}