Задание реализовать тестовый фреймворк на 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);
		}};
	}
}