From be1da7e4c1558aacd818c41e0f9d2257c15ab9bd Mon Sep 17 00:00:00 2001 From: stud_i_sram Date: Thu, 6 Feb 2025 20:37:50 +0300 Subject: [PATCH] =?UTF-8?q?ConsultantTest.java=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=20@Test=20isBeContextMenu()=20BpPage.j?= =?UTF-8?q?ava=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D0=BE=D0=B4=20openContextMenuByDoc()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/page/BpPage.java | 25 +++++++++++++++++++------ src/test/java/ConsultantTest.java | 14 ++++++++++++-- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/src/main/java/page/BpPage.java b/src/main/java/page/BpPage.java index 2b38b90..f539d11 100644 --- a/src/main/java/page/BpPage.java +++ b/src/main/java/page/BpPage.java @@ -5,27 +5,29 @@ import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; import org.openqa.selenium.By; +import java.time.Duration; +import java.time.temporal.ChronoUnit; import java.util.concurrent.TimeUnit; import static com.codeborne.selenide.Condition.visible; -import static com.codeborne.selenide.Selenide.$; -import static com.codeborne.selenide.Selenide.$$; +import static com.codeborne.selenide.Selenide.*; +import static java.time.temporal.ChronoUnit.SECONDS; public class BpPage { public static final By searchField = By.cssSelector("[test*='page-home-input']"); public static final By searchButton = By.cssSelector("[class*='x-search-box__search-button'], [test*='page-home-search-button']"); public static final By searchList = By.cssSelector("div.x-page-components-search-result-item"); + public static final By contextMenu = By.cssSelector("[class='x-menu'], [test='menu']"); /** * Делаем запрос в БП * * @param query запрос - * @throws InterruptedException */ - public static void searchInInputField(String query) throws InterruptedException { + public static void searchInInputField(String query) { $(searchField).setValue(query); $(searchButton).click(); - TimeUnit.SECONDS.sleep(2); + $(searchList).shouldBe(visible, Duration.of(3, SECONDS)); } /** @@ -33,10 +35,21 @@ public class BpPage { * @param index индекс документа (начинается с 0) * @return SelenideElement */ - public static SelenideElement takeFocusOnDocByIndex(int index) { + public static SelenideElement getOnDocByIndex(int index) { ElementsCollection list = $$(searchList); list.get(0).shouldBe(visible); return list.get(0); } + + /** + * Открытие контекстного меню по ПКП + * @param index индекс документа (начинается с 0) + */ + public static void openContextMenuByDoc(int index) { + SelenideElement doc = getOnDocByIndex(index); + + doc.contextClick(); + $(contextMenu).shouldBe(visible, Duration.of(3, SECONDS)); + } } diff --git a/src/test/java/ConsultantTest.java b/src/test/java/ConsultantTest.java index 9a5b017..ae7ca8b 100644 --- a/src/test/java/ConsultantTest.java +++ b/src/test/java/ConsultantTest.java @@ -1,5 +1,6 @@ import com.codeborne.selenide.Selenide; import com.codeborne.selenide.SelenideElement; +import static com.codeborne.selenide.Selenide.*; import org.testng.Assert; import org.testng.annotations.Test; import page.BpPage; @@ -9,7 +10,7 @@ public class ConsultantTest extends BaseTest{ private final static String TKrf = "Трудовой кодекс"; @Test(description = "Проверка поиска в БП") - public void searchInBp() throws InterruptedException { + public void searchInBp() { // Открываем БП StartPage.openBP(); @@ -17,12 +18,21 @@ public class ConsultantTest extends BaseTest{ BpPage.searchInInputField("закон о полиции"); // Проверяем текст документа по индексу - SelenideElement doc = BpPage.takeFocusOnDocByIndex(0); + SelenideElement doc = BpPage.getOnDocByIndex(0); boolean isCorrectTitle = doc.getText().contains("О полиции"); Assert.assertTrue(isCorrectTitle, "Документы отличаются"); } + @Test(description = "Проверка вызова контекстного меню по ПКМ") + public void isBeContextMenu() { + StartPage.openBP(); + BpPage.searchInInputField(TKrf); + + BpPage.openContextMenuByDoc(0); + + } + }