commit 0c1f90a6e8015e6ca35285c17c198036ce07b839 Author: stud_i_sram Date: Thu Feb 6 15:19:57 2025 +0300 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..6111a9a --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..c073030 --- /dev/null +++ b/pom.xml @@ -0,0 +1,67 @@ + + + 4.0.0 + + org.example + SelenideProject + 1.0-SNAPSHOT + + + 22 + 22 + UTF-8 + + + + + + org.seleniumhq.selenium + selenium-java + 4.16.1 + + + + org.seleniumhq.selenium + selenium-remote-driver + 4.16.1 + + + + org.seleniumhq.selenium + selenium-chrome-driver + 4.16.1 + + + + + com.codeborne + selenide + 7.0.5 + + + + + io.github.bonigarcia + webdrivermanager + 5.6.2 + + + + + org.testng + testng + 7.10.1 + test + + + + org.slf4j + slf4j-simple + 2.0.9 + + + + + \ No newline at end of file diff --git a/src/main/java/org/example/Main.java b/src/main/java/org/example/Main.java new file mode 100644 index 0000000..a02700f --- /dev/null +++ b/src/main/java/org/example/Main.java @@ -0,0 +1,17 @@ +package org.example; + +//TIP To Run code, press or +// click the icon in the gutter. +public class Main { + public static void main(String[] args) { + //TIP Press with your caret at the highlighted text + // to see how IntelliJ IDEA suggests fixing it. + System.out.printf("Hello and welcome!"); + + for (int i = 1; i <= 5; i++) { + //TIP Press to start debugging your code. We have set one breakpoint + // for you, but you can always add more by pressing . + System.out.println("i = " + i); + } + } +} \ No newline at end of file diff --git a/src/main/java/page/BpPage.java b/src/main/java/page/BpPage.java new file mode 100644 index 0000000..007ade5 --- /dev/null +++ b/src/main/java/page/BpPage.java @@ -0,0 +1,18 @@ +package page; + +import org.openqa.selenium.By; + +import java.util.concurrent.TimeUnit; + +import static com.codeborne.selenide.Selenide.$; + +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 void searchInInputField(String query) throws InterruptedException { + $(searchField).setValue(query); + $(searchButton).click(); + TimeUnit.SECONDS.sleep(5); + } +} diff --git a/src/main/java/page/CodexPage.java b/src/main/java/page/CodexPage.java new file mode 100644 index 0000000..2f6753a --- /dev/null +++ b/src/main/java/page/CodexPage.java @@ -0,0 +1,4 @@ +package page; + +public class CodexPage { +} diff --git a/src/main/java/page/KpPage.java b/src/main/java/page/KpPage.java new file mode 100644 index 0000000..4de3ee1 --- /dev/null +++ b/src/main/java/page/KpPage.java @@ -0,0 +1,5 @@ +package page; + +public class KpPage { + +} diff --git a/src/main/java/page/StartPage.java b/src/main/java/page/StartPage.java new file mode 100644 index 0000000..d29bc33 --- /dev/null +++ b/src/main/java/page/StartPage.java @@ -0,0 +1,26 @@ +package page; + +import com.codeborne.selenide.Selenide; +import org.openqa.selenium.By; + +import java.util.concurrent.TimeUnit; + +import static com.codeborne.selenide.Condition.visible; +import static com.codeborne.selenide.Selenide.$; + +/** + * Стартовое окно К+ + */ +public class StartPage { + private static final By BP = By.cssSelector("[test*='main-toolbar-button-splus']"); + + + + // static позволяет использовать метод без конструктора класса + public static void openBP() { + $(BP).click(); + $(BpPage.searchField).shouldBe(visible); + } + + +} diff --git a/src/test/java/BaseTest.java b/src/test/java/BaseTest.java new file mode 100644 index 0000000..f685e04 --- /dev/null +++ b/src/test/java/BaseTest.java @@ -0,0 +1,36 @@ +import com.codeborne.selenide.Configuration; +import com.codeborne.selenide.Selenide; +import io.github.bonigarcia.wdm.WebDriverManager; +import org.testng.annotations.AfterTest; +import org.testng.annotations.BeforeTest; +import static com.codeborne.selenide.Selenide.*; + +// abstract - значит что класс может только наследоваться и мы не можем создать его экземпляр +abstract class BaseTest { + private final static String nivUrl = "https://www.consultant.ru/cons/cgi/online.cgi"; + + public void setUp() { + // подготавливаем браузер chrome + WebDriverManager.chromedriver().setup(); + Configuration.browser = "chrome"; // задаем браузер + Configuration.browserSize = "1920x1080"; // задаем размер окна + Configuration.headless = false; // будем ли видеть открытый браузер + } + + + @BeforeTest + public void init() { + // перед тестов настраиваем браузер + setUp(); + Selenide.open(nivUrl); + executeJavaScript("window.name = \"autotest\";"); + Selenide.refresh(); + + } + + @AfterTest + public void tearDown() { + // после теста закрываем браузер + Selenide.closeWebDriver(); + } +} diff --git a/src/test/java/ConsultantTest.java b/src/test/java/ConsultantTest.java new file mode 100644 index 0000000..522fd7a --- /dev/null +++ b/src/test/java/ConsultantTest.java @@ -0,0 +1,15 @@ +import org.testng.annotations.Test; +import page.BpPage; +import page.StartPage; + +public class ConsultantTest extends BaseTest{ + private final static String TKrf = "Трудовой кодекс"; + + @Test(description = "Проверка поиска в БП") + public void searchInBp() throws InterruptedException { + StartPage.openBP(); + BpPage.searchInInputField("закон о полиции"); + } + + +}