regard scenario 2
This commit is contained in:
parent
90bed51df4
commit
f2c7839684
@ -4,3 +4,5 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
"Идеальная реализация должна позволить в теории создать третий похожий сценарий с другими категориями товаров, не написав ни единой дополнительной строчки Java кода."
|
||||||
|
- такого не получилось, пришлось добавить один степ для второго сценария
|
@ -21,6 +21,12 @@ public class CatalogPage {
|
|||||||
categoryLink.click();
|
categoryLink.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void selectCategoryMainMenu(String name) {
|
||||||
|
WebElement categoryLink = wait.until(ExpectedConditions.elementToBeClickable(
|
||||||
|
By.xpath("//a/div[text()='" + name + "']")));
|
||||||
|
categoryLink.click();
|
||||||
|
}
|
||||||
|
|
||||||
public void closeCookieBannerIfPresent() {
|
public void closeCookieBannerIfPresent() {
|
||||||
try {
|
try {
|
||||||
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));
|
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5));
|
||||||
|
@ -24,13 +24,6 @@ public class ListingPage {
|
|||||||
waitForJSIdle();
|
waitForJSIdle();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void selectGigabyte() {
|
|
||||||
WebElement checkbox = wait.until(ExpectedConditions.elementToBeClickable(
|
|
||||||
By.cssSelector("input[id*='Gigabyte'] + label")));
|
|
||||||
checkbox.click();
|
|
||||||
waitForJSIdle();
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<WebElement> getAllProducts() {
|
public List<WebElement> getAllProducts() {
|
||||||
return driver.findElements(By.cssSelector("div.Card_wrap__hES44"));
|
return driver.findElements(By.cssSelector("div.Card_wrap__hES44"));
|
||||||
}
|
}
|
||||||
@ -45,4 +38,17 @@ public class ListingPage {
|
|||||||
((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete")
|
((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void selectManufacturer(String name) {
|
||||||
|
|
||||||
|
WebElement checkbox = wait.until(ExpectedConditions.elementToBeClickable(
|
||||||
|
By.cssSelector("input[id*='" + name + "'] + label")));
|
||||||
|
checkbox.click();
|
||||||
|
waitForJSIdle();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void waitForSearchResultsToUpdate(int expectedCount) {
|
||||||
|
wait.until(driver -> getAllProducts().size() <= expectedCount);
|
||||||
|
waitForJSIdle(); // если хочешь ещё чуть-чуть гарантии
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,11 @@ public class SearchSteps {
|
|||||||
catalogPage.selectCategory(category);
|
catalogPage.selectCategory(category);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@И("Выбираем раздел меню {string}")
|
||||||
|
public void chooseCategoryMainMenu(String category) {
|
||||||
|
catalogPage.selectCategoryMainMenu(category);
|
||||||
|
}
|
||||||
|
|
||||||
@И("Выбираем подраздел {string}")
|
@И("Выбираем подраздел {string}")
|
||||||
public void chooseSubCategory(String sub) {
|
public void chooseSubCategory(String sub) {
|
||||||
catalogPage.selectSubCategory(sub);
|
catalogPage.selectSubCategory(sub);
|
||||||
@ -59,9 +64,7 @@ public class SearchSteps {
|
|||||||
|
|
||||||
@И("Фильтруем по производителю {string}")
|
@И("Фильтруем по производителю {string}")
|
||||||
public void filterByManufacturer(String name) {
|
public void filterByManufacturer(String name) {
|
||||||
if (name.equalsIgnoreCase("Gigabyte")) {
|
listingPage.selectManufacturer(name);
|
||||||
listingPage.selectGigabyte();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@И("Проверяем, что товаров не более {int}")
|
@И("Проверяем, что товаров не более {int}")
|
||||||
|
15
src/test/resources/features/regard_search_keyboard.feature
Normal file
15
src/test/resources/features/regard_search_keyboard.feature
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# language: ru
|
||||||
|
Функциональность: Поиск клавиатур с фильтрами и проверкой
|
||||||
|
|
||||||
|
Сценарий: Поиск клавиатуры A4Tech с фильтром по цене
|
||||||
|
Дано Открываем сайт regard
|
||||||
|
И Открываем меню Каталог
|
||||||
|
И Выбираем раздел меню "Периферия"
|
||||||
|
И Выбираем подраздел "Клавиатуры"
|
||||||
|
И Задаем цену от "2000"
|
||||||
|
И Фильтруем по производителю "A4Tech"
|
||||||
|
И Проверяем, что товаров не более 24
|
||||||
|
И Сохраняем наименование первого товара
|
||||||
|
И Ищем товар по сохраненному имени
|
||||||
|
Тогда На странице только один товар
|
||||||
|
И Название товара соответствует сохраненному
|
Loading…
x
Reference in New Issue
Block a user