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