From c974ad3500d3dbac1b6ac919c5ab8accb1ec6457 Mon Sep 17 00:00:00 2001
From: LudwigMintus <105379599+LudwigMintus@users.noreply.github.com>
Date: Sun, 26 May 2024 04:19:23 +0300
Subject: [PATCH 1/4] add page + test
---
tpo_lab3/app.properties | 4 +
tpo_lab3/pom.xml | 94 +++++++++++
tpo_lab3/src/main/java/org/example/Utils.java | 41 +++++
.../org/example/pages/CreatInformation.java | 139 ++++++++++++++++
.../java/org/example/pages/LoginPage.java | 81 ++++++++++
.../main/java/org/example/pages/Profile.java | 59 +++++++
.../example/pages/SearchAdvanceAnswer.java | 57 +++++++
.../java/org/example/pages/SearchAnswer.java | 39 +++++
.../src/test/java/org/example/EnvTest.java | 13 ++
.../example/usecase/CreatInformationTest.java | 151 ++++++++++++++++++
.../org/example/usecase/LoginPageTest.java | 107 +++++++++++++
.../java/org/example/usecase/ProfileTest.java | 59 +++++++
.../usecase/SearchAdvanceAnswerTest.java | 81 ++++++++++
.../org/example/usecase/SearchAnswerTest.java | 54 +++++++
.../target/classes/org/example/Utils.class | Bin 0 -> 1933 bytes
.../org/example/pages/CreatInformation.class | Bin 0 -> 4195 bytes
.../classes/org/example/pages/LoginPage.class | Bin 0 -> 2382 bytes
.../classes/org/example/pages/Profile.class | Bin 0 -> 1704 bytes
.../example/pages/SearchAdvanceAnswer.class | Bin 0 -> 1647 bytes
.../org/example/pages/SearchAnswer.class | Bin 0 -> 1796 bytes
.../test-classes/org/example/EnvTest.class | Bin 0 -> 481 bytes
.../usecase/CreatInformationTest.class | Bin 0 -> 5362 bytes
.../org/example/usecase/LoginPageTest.class | Bin 0 -> 4095 bytes
.../org/example/usecase/ProfileTest.class | Bin 0 -> 3120 bytes
.../usecase/SearchAdvanceAnswerTest.class | Bin 0 -> 3589 bytes
.../example/usecase/SearchAnswerTest.class | Bin 0 -> 2916 bytes
26 files changed, 979 insertions(+)
create mode 100644 tpo_lab3/app.properties
create mode 100644 tpo_lab3/pom.xml
create mode 100644 tpo_lab3/src/main/java/org/example/Utils.java
create mode 100644 tpo_lab3/src/main/java/org/example/pages/CreatInformation.java
create mode 100644 tpo_lab3/src/main/java/org/example/pages/LoginPage.java
create mode 100644 tpo_lab3/src/main/java/org/example/pages/Profile.java
create mode 100644 tpo_lab3/src/main/java/org/example/pages/SearchAdvanceAnswer.java
create mode 100644 tpo_lab3/src/main/java/org/example/pages/SearchAnswer.java
create mode 100644 tpo_lab3/src/test/java/org/example/EnvTest.java
create mode 100644 tpo_lab3/src/test/java/org/example/usecase/CreatInformationTest.java
create mode 100644 tpo_lab3/src/test/java/org/example/usecase/LoginPageTest.java
create mode 100644 tpo_lab3/src/test/java/org/example/usecase/ProfileTest.java
create mode 100644 tpo_lab3/src/test/java/org/example/usecase/SearchAdvanceAnswerTest.java
create mode 100644 tpo_lab3/src/test/java/org/example/usecase/SearchAnswerTest.java
create mode 100644 tpo_lab3/target/classes/org/example/Utils.class
create mode 100644 tpo_lab3/target/classes/org/example/pages/CreatInformation.class
create mode 100644 tpo_lab3/target/classes/org/example/pages/LoginPage.class
create mode 100644 tpo_lab3/target/classes/org/example/pages/Profile.class
create mode 100644 tpo_lab3/target/classes/org/example/pages/SearchAdvanceAnswer.class
create mode 100644 tpo_lab3/target/classes/org/example/pages/SearchAnswer.class
create mode 100644 tpo_lab3/target/test-classes/org/example/EnvTest.class
create mode 100644 tpo_lab3/target/test-classes/org/example/usecase/CreatInformationTest.class
create mode 100644 tpo_lab3/target/test-classes/org/example/usecase/LoginPageTest.class
create mode 100644 tpo_lab3/target/test-classes/org/example/usecase/ProfileTest.class
create mode 100644 tpo_lab3/target/test-classes/org/example/usecase/SearchAdvanceAnswerTest.class
create mode 100644 tpo_lab3/target/test-classes/org/example/usecase/SearchAnswerTest.class
diff --git a/tpo_lab3/app.properties b/tpo_lab3/app.properties
new file mode 100644
index 0000000..0b4ee1a
--- /dev/null
+++ b/tpo_lab3/app.properties
@@ -0,0 +1,4 @@
+BIG_BOOBS=true
+HOT_CHICKS=true
+WEB_DRIVER=firefox
+
diff --git a/tpo_lab3/pom.xml b/tpo_lab3/pom.xml
new file mode 100644
index 0000000..700c227
--- /dev/null
+++ b/tpo_lab3/pom.xml
@@ -0,0 +1,94 @@
+
+ 4.0.0
+ org.example
+ tpo_lab3
+ 1.0.0
+
+
+ 17
+ 17
+
+
+
+
+ org.seleniumhq.selenium
+ selenium-java
+ 4.19.1
+
+
+ com.github.seratch
+ java-time-backport
+ 1.0.0
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ 5.10.2
+ test
+
+
+ joda-time
+ joda-time
+ 2.9.1
+
+
+
+
+
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+ maven-jar-plugin
+ 3.0.2
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+ maven-site-plugin
+ 3.7.1
+
+
+ maven-project-info-reports-plugin
+ 3.0.0
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 17
+ 17
+
+
+
+ src/main/java
+ src/test/java
+
+
diff --git a/tpo_lab3/src/main/java/org/example/Utils.java b/tpo_lab3/src/main/java/org/example/Utils.java
new file mode 100644
index 0000000..8b7d5c1
--- /dev/null
+++ b/tpo_lab3/src/main/java/org/example/Utils.java
@@ -0,0 +1,41 @@
+package org.example;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.chrome.ChromeDriver;
+import org.openqa.selenium.firefox.FirefoxDriver;
+
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+import java.util.List;
+
+public class Utils {
+ public static final String DEFAULT_URL = "https://www.answers.com/";
+
+ private static FirefoxDriver firefoxDriver;
+
+ private static ChromeDriver chromeDriver;
+
+ public static FirefoxDriver getFireFoxDriver() {
+ if (firefoxDriver == null) {
+ firefoxDriver = new FirefoxDriver();
+ }
+ return firefoxDriver;
+ }
+
+ public static ChromeDriver getChromeDriver() {
+ if (chromeDriver == null) {
+ chromeDriver = new ChromeDriver();
+ }
+ return chromeDriver;
+ }
+
+ public static List getDrivers() {
+ return List.of(
+ getChromeDriver());
+ // getFireFoxDriver());
+ }
+
+ public static void wait10Sec(WebDriver webDriver) {
+ webDriver.manage().timeouts().implicitlyWait(Duration.of(20, ChronoUnit.SECONDS));
+ }
+}
diff --git a/tpo_lab3/src/main/java/org/example/pages/CreatInformation.java b/tpo_lab3/src/main/java/org/example/pages/CreatInformation.java
new file mode 100644
index 0000000..1cefad3
--- /dev/null
+++ b/tpo_lab3/src/main/java/org/example/pages/CreatInformation.java
@@ -0,0 +1,139 @@
+package org.example.pages;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+
+import java.util.List;
+
+public class CreatInformation {
+
+ public CreatInformation(WebDriver webDriver) {
+ PageFactory.initElements(webDriver, this);
+ }
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[1]/div/button/button")
+ private WebElement creatSomeThing;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[1]/div/div/div/span[1]/button/img")
+ private WebElement creatQuestion;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[1]/div/div/div/span[2]/button/img")
+ private WebElement studyGuide;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div/div[2]/div[1]/textarea")
+ private WebElement textQuestion;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div/div[1]/button[2]")
+ private WebElement submitQuestion;
+
+ @FindBy(xpath = "//*[@id=\"question-title\"]")
+ private WebElement answer;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div/div[2]/div/div[2]/button/span\n")
+ private WebElement clickForAnswer;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[3]/textarea")
+ private WebElement addATitle;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[5]/textarea")
+ private WebElement addADescription;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[7]/div[1]/input")
+ private WebElement addTags1;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[7]/div[2]/input")
+ private WebElement addTags2;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[7]/div[3]/input")
+ private WebElement addTags3;
+
+ @FindBy(xpath = "//*[@id=\"editGuides\"]/div/div[1]/div[1]")
+ private WebElement addTerm;
+
+ @FindBy(xpath = "//*[@id=\"editGuides\"]/div/div[2]/div[1]")
+ private WebElement addDefinition;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[2]/div[2]/button[1]")
+ private WebElement addNewCard;
+
+ //@FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div[2]/div[2]/div/div/div[1]/div[1]")
+ @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div[2]/div[2]/div/div/div[1]/div[1]") //TODO ПОЛНЫЕ ПУТИ
+
+ private WebElement addTerm1;
+
+ @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div[2]/div[2]/div/div/div[2]/div[1]") //TODO ПОЛНЫЕ ПУТИ
+ private WebElement addDefinition1;
+
+ @FindBy(xpath = " //*[@id=\"root\"]/div/div[2]/div/div[2]/h1/a")
+ private WebElement textGuide;
+
+ @FindBy(xpath = "//*[@id=\"createButton\"]")
+ private WebElement creatGuide;
+
+
+ public WebElement getClickForAnswer() {
+ return clickForAnswer;
+ }
+
+ public WebElement getTextGuide() {
+ return textGuide;
+ }
+ public WebElement getCreatGuide() {
+ return creatGuide;
+ }
+ public WebElement getAddTerm1() {
+ return addTerm1;
+ }
+ public WebElement getAddDefinition1() {
+ return addDefinition1;
+ }
+ public WebElement getAddNewCard() {
+ return addNewCard;
+ }
+ public WebElement getAddTerm() {
+ return addTerm;
+ }
+ public WebElement getAddDefinition() {
+ return addDefinition;
+ }
+
+ public WebElement getAddTags1() {
+ return addTags1;
+ }
+ public WebElement getAddTags2() {
+ return addTags2;
+ }
+ public WebElement getAddTags3() {
+ return addTags3;
+ }
+
+ public WebElement getAddATitle() {
+ return addATitle;
+ }
+ public WebElement getAddADescription() {
+ return addADescription;
+ }
+
+
+ public WebElement getCreatSomeThing() {
+ return creatSomeThing;
+ }
+ public WebElement getAnswer() {
+ return answer;
+ }
+ public WebElement getSubmitQuestion() {
+ return submitQuestion;
+ }
+ public WebElement getTextQuestion(){
+ return textQuestion;
+ }
+
+ public WebElement getCreatQuestion() {
+ return creatQuestion;
+ }
+ public WebElement getStudyGuide() {
+ return studyGuide;
+ }
+}
diff --git a/tpo_lab3/src/main/java/org/example/pages/LoginPage.java b/tpo_lab3/src/main/java/org/example/pages/LoginPage.java
new file mode 100644
index 0000000..cf16d4f
--- /dev/null
+++ b/tpo_lab3/src/main/java/org/example/pages/LoginPage.java
@@ -0,0 +1,81 @@
+package org.example.pages;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+
+public class LoginPage {
+
+ private WebDriver webDriver;
+
+ public LoginPage(WebDriver webDriver) {
+ PageFactory.initElements(webDriver, this);
+ this.webDriver = webDriver;
+ }
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[3]/span/button")
+ private WebElement logInButton;
+
+
+ @FindBy(xpath = "/html/body/div[1]/div[1]/div/div/div[4]/div/div[2]/div/div[2]/div[2]/div/button[4]")
+ private WebElement logInWithEmail;
+
+ @FindBy(xpath = "/html/body/div[1]/div[1]/div/div/div[4]/div/div[2]/div[2]/form/button")
+ private WebElement submit;
+
+
+ @FindBy(xpath = "//*[@id=\"email-input\"]")
+ private WebElement emailField;
+
+
+ @FindBy(xpath = "//*[@id=\"outlined-adornment-password\"]")
+ private WebElement passwordField;
+
+ @FindBy(xpath = "//*[@id=\"profile-menu\"]/span/img")
+ private WebElement avatar;
+
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[3]/span/div/div/div/button[3]/a/span")
+ private WebElement logUot;
+
+ @FindBy(xpath = "//*[@id=\"loginUser\"]/div[2]/span")
+ private WebElement errorMessage;
+
+ public WebElement getEmailField() {
+ return emailField;
+ }
+
+
+ public WebElement getPasswordField() {
+ return passwordField;
+ }
+
+ public WebElement getSignInButton() {
+ return logInButton;
+ }
+
+ public WebElement getSignInButtonWhitEmail() {
+ return logInWithEmail;
+ }
+ public WebElement getSubmit() {
+ return submit;
+ }
+
+ public WebElement getAvatar() {
+ return avatar;
+ }
+
+ public WebElement getLogUot() {
+ return logUot;
+ }
+
+
+ public WebDriver getWebDriver() {
+ return webDriver;
+ }
+
+ public WebElement getErrorMessage() {
+ return errorMessage;
+ }
+}
diff --git a/tpo_lab3/src/main/java/org/example/pages/Profile.java b/tpo_lab3/src/main/java/org/example/pages/Profile.java
new file mode 100644
index 0000000..00faf50
--- /dev/null
+++ b/tpo_lab3/src/main/java/org/example/pages/Profile.java
@@ -0,0 +1,59 @@
+package org.example.pages;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+
+public class Profile {
+
+ private WebDriver webDriver;
+
+ public Profile(WebDriver webDriver) {
+ PageFactory.initElements(webDriver, this);
+ this.webDriver = webDriver;
+ }
+
+ @FindBy(xpath = "//*[@id=\"profile-menu\"]/span/img")
+ private WebElement clickAvatar;
+
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[3]/span/div/div/div/button[2]/a/span")
+ private WebElement clickSettings;
+
+ //*[@id="checkbox"]/input
+
+ @FindBy(xpath = "//*[@id=\"checkbox\"]/input")
+ private WebElement clickCheckBoxEmail;
+
+ @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div/div[4]/fieldset/div/label[1]/div/input")//TODO ПОЛНЫЕ ПУТИ
+ private WebElement clickCheckBoxEmail2;
+
+ @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div/div[4]/fieldset/div/label[2]/div/input")//TODO ПОЛНЫЕ ПУТИ
+ private WebElement clickCheckBoxEmail3;
+
+ public WebElement getClickCheckBoxEmail2() {
+ return clickCheckBoxEmail2;
+ }
+
+ public WebElement getClickCheckBoxEmail3() {
+ return clickCheckBoxEmail3;
+ }
+
+
+ public WebElement getClickAvatar() {
+ return clickAvatar;
+ }
+
+ public WebElement getClickSettings() {
+ return clickSettings;
+ }
+
+ public WebElement getClickCheckBoxEmail() {
+ return clickCheckBoxEmail;
+ }
+
+
+
+
+}
\ No newline at end of file
diff --git a/tpo_lab3/src/main/java/org/example/pages/SearchAdvanceAnswer.java b/tpo_lab3/src/main/java/org/example/pages/SearchAdvanceAnswer.java
new file mode 100644
index 0000000..95699bf
--- /dev/null
+++ b/tpo_lab3/src/main/java/org/example/pages/SearchAdvanceAnswer.java
@@ -0,0 +1,57 @@
+package org.example.pages;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+
+public class SearchAdvanceAnswer {
+
+ private WebDriver webDriver;
+
+ public SearchAdvanceAnswer(WebDriver webDriver) {
+ PageFactory.initElements(webDriver, this);
+ this.webDriver = webDriver;
+ }
+
+ @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[4]/form/div/div[1]/svg")
+ private WebElement openAdvanceSearch;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/input")
+ private WebElement searchTerm;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div[2]/button/div")
+ private WebElement contentType;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div[3]/button/div")
+ private WebElement subject;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div[4]/button/div")
+ private WebElement category;
+
+
+
+
+
+ public WebElement getOpenAdvanceSearch() {
+ return openAdvanceSearch;
+ }
+
+ public WebElement getSearchTerm() {
+ return searchTerm;
+ }
+
+ public WebElement getContentType() {
+ return contentType;
+ }
+
+ public WebElement getSubject() {
+ return subject;
+ }
+
+ public WebElement getCategory() {
+ return category;
+ }
+
+
+}
diff --git a/tpo_lab3/src/main/java/org/example/pages/SearchAnswer.java b/tpo_lab3/src/main/java/org/example/pages/SearchAnswer.java
new file mode 100644
index 0000000..2b62eb9
--- /dev/null
+++ b/tpo_lab3/src/main/java/org/example/pages/SearchAnswer.java
@@ -0,0 +1,39 @@
+package org.example.pages;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+
+public class SearchAnswer {
+
+ public SearchAnswer(WebDriver webDriver) {
+ PageFactory.initElements(webDriver, this);
+ }
+
+ @FindBy(xpath = "//*[@id=\"search-input\"]")
+ private WebElement inputField;
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/main/section[1]/div[2]/button")
+ private WebElement searchButton;
+
+ @FindBy(xpath = " //*[@id=\"best-answer\"]/div[4]/div[2]/button[2]")
+ private WebElement viewPage;
+
+ @FindBy(xpath = "//*[@id=\"top-answer\"]/div[2]/div[1]/div/p")
+ private WebElement answer;
+ public WebElement getInputField() {
+ return inputField;
+ }
+
+ public WebElement getSearchButton() {
+ return searchButton;
+ }
+
+ public WebElement getViewPage() {
+ return viewPage;
+ }
+
+ public WebElement getAnswer(){return answer;}
+
+}
diff --git a/tpo_lab3/src/test/java/org/example/EnvTest.java b/tpo_lab3/src/test/java/org/example/EnvTest.java
new file mode 100644
index 0000000..d012693
--- /dev/null
+++ b/tpo_lab3/src/test/java/org/example/EnvTest.java
@@ -0,0 +1,13 @@
+package org.example;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+public class EnvTest {
+
+ @Test
+ void test() {
+ assertTrue(true);
+ }
+}
diff --git a/tpo_lab3/src/test/java/org/example/usecase/CreatInformationTest.java b/tpo_lab3/src/test/java/org/example/usecase/CreatInformationTest.java
new file mode 100644
index 0000000..7968e2f
--- /dev/null
+++ b/tpo_lab3/src/test/java/org/example/usecase/CreatInformationTest.java
@@ -0,0 +1,151 @@
+package org.example.usecase;
+
+import org.example.Utils;
+import org.example.pages.CreatInformation;
+import org.example.pages.LoginPage;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.WebDriver;
+
+import static org.example.Utils.wait10Sec;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class CreatInformationTest {
+
+ @AfterEach
+ void tearDown() {
+ Utils.getDrivers().forEach(WebDriver::quit);
+ }
+
+ @Test
+ void creatQuestion() {
+ Utils.getDrivers().forEach(webDriver -> {
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ LoginPage loginPage = new LoginPage(webDriver);
+ loginPage.getSignInButton().click();
+ loginPage.getSignInButtonWhitEmail().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
+ loginPage.getPasswordField().sendKeys("ww2N0mpD");
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ loginPage.getSubmit().click();
+ CreatInformation creatInformation = new CreatInformation(webDriver);
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ creatInformation.getCreatSomeThing().click();
+
+ creatInformation.getCreatQuestion().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ creatInformation.getTextQuestion().sendKeys("What color are the socks???");
+ creatInformation.getSubmitQuestion().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ String text = creatInformation.getAnswer().getText();
+ assertEquals(
+ "What color are the socks?",
+ text
+ );
+ creatInformation.getClickForAnswer().click();
+ webDriver.quit();
+ });
+ }
+
+ @Test
+ void CreatStudyGuide() throws RuntimeException {
+ Utils.getDrivers().forEach(webDriver -> {
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ LoginPage loginPage = new LoginPage(webDriver);
+ loginPage.getSignInButton().click();
+ loginPage.getSignInButtonWhitEmail().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
+ loginPage.getPasswordField().sendKeys("ww2N0mpD");
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ loginPage.getSubmit().click();
+ CreatInformation creatInformation = new CreatInformation(webDriver);
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ creatInformation.getCreatSomeThing().click();
+
+ creatInformation.getStudyGuide().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ creatInformation.getAddATitle().sendKeys("What color are the socks!!!!!");
+ creatInformation.getAddADescription().sendKeys("About socks");
+ creatInformation.getAddTags1().sendKeys("socks");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ creatInformation.getAddTags2().sendKeys("blue");
+ creatInformation.getAddTags3().sendKeys("black");
+ creatInformation.getAddTerm().sendKeys("fitst socks");
+ creatInformation.getAddDefinition().sendKeys("black");
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ creatInformation.getAddNewCard().click();
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ creatInformation.getAddTerm1().sendKeys("second socks");
+ creatInformation.getAddDefinition1().sendKeys("blue");
+ creatInformation.getAddDefinition1().click();
+ creatInformation.getCreatGuide().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ String text = creatInformation.getTextGuide().getText();
+ assertEquals(
+ "What color are the socks!!!!!",
+ text
+ );
+ webDriver.quit();
+ });
+ }
+}
diff --git a/tpo_lab3/src/test/java/org/example/usecase/LoginPageTest.java b/tpo_lab3/src/test/java/org/example/usecase/LoginPageTest.java
new file mode 100644
index 0000000..f92c75c
--- /dev/null
+++ b/tpo_lab3/src/test/java/org/example/usecase/LoginPageTest.java
@@ -0,0 +1,107 @@
+package org.example.usecase;
+
+import org.example.Utils;
+import org.example.pages.LoginPage;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+
+import static org.example.Utils.wait10Sec;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class LoginPageTest {
+
+ @BeforeEach
+ void init() {
+
+ }
+
+ @Test
+ void loginTest() {
+ Utils.getDrivers().forEach(webDriver -> {
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ LoginPage loginPage = new LoginPage(webDriver);
+ loginPage.getSignInButton().click();
+ loginPage.getSignInButtonWhitEmail().click();
+ loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
+ loginPage.getPasswordField().sendKeys("ww2N0mpD");
+ loginPage.getSubmit().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ webDriver.quit();
+ });
+ }
+
+ @Test
+ void logoutTest() {
+ Utils.getDrivers().forEach(webDriver -> {
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ LoginPage loginPage = new LoginPage(webDriver);
+ loginPage.getSignInButton().click();
+ loginPage.getSignInButtonWhitEmail().click();
+ loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
+ loginPage.getPasswordField().sendKeys("ww2N0mpD");
+ loginPage.getSubmit().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ loginPage.getAvatar().click();
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ loginPage.getLogUot().click();
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ webDriver.quit();
+ });
+ }
+
+ @Test
+ void loginErrorTest() {
+ WebDriver webDriver = Utils.getChromeDriver();
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ LoginPage loginPage = new LoginPage(webDriver);
+ loginPage.getSignInButton().click();
+ loginPage.getSignInButtonWhitEmail().click();
+ loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
+ loginPage.getPasswordField().sendKeys("4234");
+ loginPage.getSubmit().click();
+ String text = loginPage.getErrorMessage().getText();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ webDriver.quit();
+ assertEquals(
+ "Passwords must be between 8 and 40 characters long",
+ text
+ );
+ }
+}
diff --git a/tpo_lab3/src/test/java/org/example/usecase/ProfileTest.java b/tpo_lab3/src/test/java/org/example/usecase/ProfileTest.java
new file mode 100644
index 0000000..890c12e
--- /dev/null
+++ b/tpo_lab3/src/test/java/org/example/usecase/ProfileTest.java
@@ -0,0 +1,59 @@
+package org.example.usecase;
+
+//import org.example.pages.SearchCarPage;
+
+import org.example.Utils;
+import org.example.pages.LoginPage;
+import org.example.pages.Profile;
+import org.junit.jupiter.api.Test;
+
+import static org.example.Utils.wait10Sec;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class ProfileTest {
+
+ @Test
+ void profileTest() {
+ Utils.getDrivers().forEach(webDriver -> {
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ LoginPage loginPage = new LoginPage(webDriver);
+ loginPage.getSignInButton().click();
+ loginPage.getSignInButtonWhitEmail().click();
+ loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
+ loginPage.getPasswordField().sendKeys("ww2N0mpD");
+ loginPage.getSubmit().click();
+
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ Profile profile = new Profile(webDriver);
+ profile.getClickAvatar().click();
+ profile.getClickSettings().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail2().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail3().click();
+
+ webDriver.quit();
+ });
+ }
+}
diff --git a/tpo_lab3/src/test/java/org/example/usecase/SearchAdvanceAnswerTest.java b/tpo_lab3/src/test/java/org/example/usecase/SearchAdvanceAnswerTest.java
new file mode 100644
index 0000000..c09c836
--- /dev/null
+++ b/tpo_lab3/src/test/java/org/example/usecase/SearchAdvanceAnswerTest.java
@@ -0,0 +1,81 @@
+package org.example.usecase;
+
+import org.example.Utils;
+import org.example.pages.LoginPage;
+import org.example.pages.SearchAdvanceAnswer;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.WebDriver;
+
+import static org.example.Utils.wait10Sec;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+public class SearchAdvanceAnswerTest {
+
+ @AfterEach
+ void tearDown() {
+ Utils.getDrivers().forEach(WebDriver::quit);
+ }
+
+ @Test
+ void searchAdvance() {
+ Utils.getDrivers().forEach(webDriver -> {
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ LoginPage loginPage = new LoginPage(webDriver);
+ loginPage.getSignInButton().click();
+ loginPage.getSignInButtonWhitEmail().click();
+ loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
+ loginPage.getPasswordField().sendKeys("ww2N0mpD");
+ loginPage.getSubmit().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ webDriver.get("https://www.answers.com/search?filter=all");
+ SearchAdvanceAnswer searchAdvanceAnswer = new SearchAdvanceAnswer(webDriver);
+ wait10Sec(webDriver);
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ searchAdvanceAnswer.getOpenAdvanceSearch().click(); //TODO Не кликается и дальше не проверял
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ searchAdvanceAnswer.getSearchTerm().sendKeys("Barack Obama");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ searchAdvanceAnswer.getContentType().click();
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ searchAdvanceAnswer.getCategory().click();
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ searchAdvanceAnswer.getSubject().click();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ webDriver.quit();
+ });
+ }
+}
diff --git a/tpo_lab3/src/test/java/org/example/usecase/SearchAnswerTest.java b/tpo_lab3/src/test/java/org/example/usecase/SearchAnswerTest.java
new file mode 100644
index 0000000..bcabae1
--- /dev/null
+++ b/tpo_lab3/src/test/java/org/example/usecase/SearchAnswerTest.java
@@ -0,0 +1,54 @@
+package org.example.usecase;
+
+import org.example.Utils;
+import org.example.pages.LoginPage;
+import org.example.pages.SearchAnswer;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import java.time.Duration;
+import java.time.temporal.ChronoUnit;
+
+import static org.example.Utils.wait10Sec;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class SearchAnswerTest {
+
+
+ @BeforeEach
+ void init() {
+
+ }
+
+ @Test
+ void searchAnswer() {
+ Utils.getDrivers().forEach(webDriver -> {
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ SearchAnswer searchAnswer = new SearchAnswer(webDriver);
+ searchAnswer.getInputField().sendKeys("what is it borsh?");
+ searchAnswer.getSearchButton().click();
+ searchAnswer.getViewPage().click();
+ String text = searchAnswer.getAnswer().getText();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ assertEquals(
+ "It's probably some variant of borscht, perhaps \"borsh.\"",
+ text
+ );
+
+ webDriver.quit();
+ });
+
+ }
+}
diff --git a/tpo_lab3/target/classes/org/example/Utils.class b/tpo_lab3/target/classes/org/example/Utils.class
new file mode 100644
index 0000000000000000000000000000000000000000..414b4334418ddcd13d01bd042ecb2dd5bef291ef
GIT binary patch
literal 1933
zcma)7-B%Mw9KDl3mMj~Hk!mZYD54}-S*`uB252=QEjB`HKB#@^*`z~Q-R!2DjoAOH
z#Rs81r>{Mye^gKJY!VVQhqng_vhaL*6@>#2%;Ls42&ZtkbG)Aw@k-!
z8|HTHsjLSAu~pl(gLQ#uI#Z2f0&xwxfk_ww=RCh*$`@9%Dry9*#nt{VQ^N%ltAX4@j4QSDwEC`Na4JIQQz~urtC{+
zMoM=vW^M>d;r9fVMhTBV>zF}Qr|kO%KENe`>4pr3>F9L&-L)t2A?7rEWMCeb1*XCj
zbQnytXt$Ywh_@@Sm@dAanrx3m>jHD5{MnJUet2R{%e5Mk5kJM+
zW9;H~E3iGcO@%Zv8kP;*z{djD-m1{QB`^`#P3d(4mdEm$TIC)#JI)eSznM60;kJfP
z4BWw|^ec>nqBH~9YrFVnFw|IHyNueRyC{{SjSfa*WVtizSk@Oo9$%R?ZEkM$5Q^R
z_i}%desqBiQr0KT3QXoV3im6;^3RpWMS3|@Nu|KI-3B3v9McxRpa4guf
znfUWzGoBb0)J?K=)C?#L2FA@(DrEG?py{Q+sy};VwR(CwDZ3?3)fCB2HWWqUCA;BT
zLC2@bcisT3j+`3Dfz7TfhJ9w{_N|hv3oNA1xR9x;3xmF!KLanIm%NT&mjzn|RSyU2
zit>UJZqs$8pL48sThcwP*O+Xve!g*qlPSWsiE=o7jr$OIz+D76=xS>7U02hR&vAa^
z*yp;zoyn(Ar^~M({@_al1+MBdc<~#qMi+o@vB_N=5AhvO)aA8MlD&EW?H?rmLgL9Q
zOuvN2{qOwV<(i^VpmdBAG>Ho+au$T+`0NPxBG?&3s7tm)2hu}Pnnelakh&7CRqXJYqEwo~KgQx54-0q_i~kSiT=ca7
literal 0
HcmV?d00001
diff --git a/tpo_lab3/target/classes/org/example/pages/CreatInformation.class b/tpo_lab3/target/classes/org/example/pages/CreatInformation.class
new file mode 100644
index 0000000000000000000000000000000000000000..708ecc44dce97b02ace73a02d37d4816b13886b0
GIT binary patch
literal 4195
zcmb`J`%@cL6vxjkuM#flyS2WGvC5;;6)3irf?OH0yBqcaMC&-?
z56<}C=!`Qu{@@?rALV$??q(BqFHEcckj>uny`OW>ee6BwufPBJ698u6y9}Iwu0H7I
z&;z{;PVeY@x>nb%s`j|NBPt$)-aFEg-W-Fjk9$Z!|{&S2Pfs+!#p)~>F(
zqAo1yo0{u48n)wUPxPuN=oQa)nhZEOxmy>eusoN+t&wFFS`@ldspW0U69?YRax$2i
z(e-}F!l^zu&EX83WsoB;;y^bWb)hwIKv&BIq!E*P7
z!(d1`_=YG)0nX4U=Q&)UA^Itnd%iRTSub&TjjWjp4HKJR=kNxZPwIwI5{@}Rec$5n
zHW{;MToT)~0vJyq4RLrUaD&o{*w5>ZLBzWpu9CSgaznQFISi9+@Q@c$Mmda;5)7(W
z-N5q)9L771lhjk=@L{KMij0#SrpVZjju%SOs|ORD=I{|&Pmy&=xD`h>C~P8barl_D
zY%uwvZHiJ&T2+!}INTwrR}a>hOmiGQ33|JJ*_7U@FWi=+1rCcOaa!9>VTr?C5(a}2
zI+c4I?vs*nJ>O^s3(w&4ns0g16zkHJ<+@m~EZYk<9go;mM}
z{mznY79I-8SQxKA;>8=Zo2j}BZ8wfnJ_
zSoq^&YegI_8LeQ3!NgIn+7qH3o$8#|OES})%=F8Rb2C0J(rWm4mA)E>LH{cbrx$U<
zah$@C;brBfPBv~cUgXF3jMtCBWZW~cT~VL*U${4c`!%iRnRTsf8_kYyiVhgG;sl(D5^DgZ>$)SU9T~g5nv8F@7MD@EeXO@89s$Y2253sF)GN5NJ{HVg^0MQIRk
z_%?wBN!VxuZI6`k4z(r^wWh+*&~upFa7{yBomnlKH^m#LGh8|97}W~2F2zF$47Uqy
zH04%)3d0O$-8Rue6gzTNrfB<4MHD1$?}eaqN0oA&Y8|WzvRID+oWmz(T43-1TLbw2
zDgGY1u#5sG$h7bX1)-Y*d0|hLa(!%E`VC9q+zCZ!1ue9(K1uWyz!X^q>%B6)b
zQNSuOEo`BHg<@Lx3eKak2foJVGu+$)cBC!OjQs}e+Su>V_Y1a8fR4{Bbm5ajHw*$*
zRAp>k40}Tb3~V6>0=Cf?gDTV_pIXoc=o$MJ27ks*p}Sr*13U`c@Zh~Ca>GC>;d4oN
zRSEAX;fqPQq=cU<;mb*QLkZWF@S92asS-Ao@RcOIrGzadoJ+#bl(4OY-%G+3CEQTL
zBT2Zbgm;zjwIsZwgdHV(Jqepi*j2(4NqAQYdrJ65684m^uY_+V;ieMaQ^L2C@Czlp
puY_ll@b^miKnc$$;UAQ6Qwisj@Q+IP8zo#w!aphDZ-e{h#XrhMd07Ae
literal 0
HcmV?d00001
diff --git a/tpo_lab3/target/classes/org/example/pages/LoginPage.class b/tpo_lab3/target/classes/org/example/pages/LoginPage.class
new file mode 100644
index 0000000000000000000000000000000000000000..2d64cb54422432aba65481083731f77468203f27
GIT binary patch
literal 2382
zcmbVNUw0El6u(pY$EF(!6)T8H8xWe*uofyJfl6BvEyTiUA$`c{!z3A!;q1<=v$LiB
zR(g&eJwEsW{7@e6%qD5NnZEe2o5}s%-<|t^|M~Z?zX9MW)N?Qa7iM76gDIFMaOpig
zqJBU{*MHS|&)S;6^b;<)-XL&crP#>9M=(1BIS=N*BXC!$t}i1dex`oR0w#D8`f(CP
zQfdD+?XnteYpG5Mc*aOIU?CGaCh%yb?xOB9s@lD6DKtCQm3r2hO0h8u7h!$|E_rYn
z76@E7R@gBOqk#DlUKsmz+2z9AO6%RgvMFKe%QXbSe
z3pxar&Lj4tvCOL;Tr7~Ld9Z3k9#cxHpI98*G+f(D
zgytb@@R+v(wkd?vRC6h?5VxJt4N6$!qO)~UAux3uQQgD3`F^SSjCYJ7!dB(PAI
zZ5lMF;^u!}IH`La8}){5)N@81J2c;A+D=e^Yzr$zXKSM?gTcjhhosk|6N_Gy1Frv;degezq`<1RLjK%m+Ju||&eVM2>
zt6`zBC((4e;_jIZ3Cp+*CUBjbU5;B3PZMV60D-UYJcqw!eD1~IBY;b19QYamTsh;w
z8UnZy$AS9@Ja7T)2;eFlXMBSI?yzy-Ap*F`#({4Uz
zef%YeO_hFwkAK0#1Q?UkR=8%(c&S3)41rB2`O_@fml&YO!_@}86Y!gj;U
F{{SDN1fl={
literal 0
HcmV?d00001
diff --git a/tpo_lab3/target/classes/org/example/pages/Profile.class b/tpo_lab3/target/classes/org/example/pages/Profile.class
new file mode 100644
index 0000000000000000000000000000000000000000..0afaead549716dacd6a940ce929c8c247f9fc2b9
GIT binary patch
literal 1704
zcmcIk-&4~-5Z)_=N(ny%K@kMzi^;W?|4L_c
zbbRm+@Q-rbOB290Jo=E!WxxHt-Mih*?>|3(0l*f#NJ0$y5)e0_9|j1Fow63A7PD*g
zpmNGhMPT5iu!VX>pf8;%CE*4PCLn3R5Euj&rCX!Y;r2&HJ#KMZG#k`wI*xP|J!Cb$
z$4n*Na{`7I*|m6s+sY%bnJz|Ak2rJ9dO_NXw^hE_olHJc8iWxTO~9A|H({K>v{vD5
z)^IFN9SrEvLsy;%ixU|9#4B%H(c&(F*~oD3Lx;SUy=A~8Oc9tcEn%J&>fAirk?q|E
z6V@7mx$6{yL-`VS44A$~BBw*l7;sPHLw<D=EkR;rmgrk=xWDjGEc`xh>*lnSA$Xz8cCdbwTqx8+>G3p{+!N>eFmm)DLd_6mw(
z`WJ$xzU+!@qo}Z*CU)HiT2~E=R%G@3N{k?s7P%sQ<+F?loCt1JJ+6Egi&eN4X82#U
zgIogbRCHrsc3P%HAYPDFY|zo7u=#$oQQ_`8hV{cL7p2Lp5_5(A4vcYC7g*34zo3!5
zj&+=>aaD-w+f+Ie*$J3Y*tyrSa|A|0*-o$G4Ox>6(1cA4Ve>
z%N0G-Fpr%b!ynK9t~kfIi|N4t0uOONgzp7>9(nK>0i29pU=aZvj9ws(0FH4lkU;>4
zvlqx>8aN2BgzFOwe}IlUxzX%*AWPXFkjO55gW)fJmdm(~LmXEF*J02zihm?nLCaK!
z1{9v+7Yg`iBPhEHYk@e$H$kjF`xPcW<0b}LQfB~oXf0!O90C~vxk&QuZgM)3ydFuu
g+f81MByU8L?{|||BgxMq$#dQ0jY#ry|7JG-0)01!aR2}S
literal 0
HcmV?d00001
diff --git a/tpo_lab3/target/classes/org/example/pages/SearchAdvanceAnswer.class b/tpo_lab3/target/classes/org/example/pages/SearchAdvanceAnswer.class
new file mode 100644
index 0000000000000000000000000000000000000000..eddad4960d48460d2c5d74764a690fb7580dd28e
GIT binary patch
literal 1647
zcmbVM*-{fh6g>@rKp0jL!3~HYS%j8Nup*X#@{|%wsQ5tfFqyPTQ<=q?P9T4!Ra#m;
z_yK;DpxfUj~$b$pcXpj;z@{sCl02EB?wXiv!bA
zuHRrVG|7vqu!W-nhV4{73VI|=->U4pjuICtm+wp_mo5xq1fy|`85qX|!=h#p7pCo1
z1^4K{fHygIOLfz+#I6&Z3!h=|Toj-CvaZ*&kw?F22juh-lLoG1ieX$A*WzjtGtB)C
z-zqO8m^Lt@2@*kA(y{Pu&3nthZEYU1bd8QWZg@i5?;4oZ_IOYWuU*^b4J5T~z%rF6
zhqpNMy5=Zpi-HVfu}alBt}>N$9lFwm$h6vzaUh-2UL(iQcj1|;!m!6H%C7RFTWau<
zte>o&UY*v$owkJ5jZ^;C_3g_&1qbyqLzeT*$un8nN&2p5!#2H)l?lx
zQwKEVMuODdOPwW-+?sER1F1`yj_9Zr-I|yumG;noq@PA=M_TphwgJOES`X2@K;L43
z`{bZ@=yoiTgBqgSks=3mM7JYN4r+^TM~2cMc_T~X13LbY0(Ekuna^O^%ooHn*-se$
z5N5ed;{;+f8Z-_=_Z$6KutJupCJY=8X-5QMZH#DFvDPBzG&Az`Wj^BCds_5BQ|b(W
z#gN8m2DE4x)+50;I>G5k@J1x~W+!+#61*7+zS9X_jRZf61kZJXHzUDY;mvIS1PF+8
A00000
literal 0
HcmV?d00001
diff --git a/tpo_lab3/target/classes/org/example/pages/SearchAnswer.class b/tpo_lab3/target/classes/org/example/pages/SearchAnswer.class
new file mode 100644
index 0000000000000000000000000000000000000000..52f38d9cdd769027d49185f7298e683fb7a42302
GIT binary patch
literal 1796
zcmZ`(+iuf95Iswqgr=rYZskr1wpT7V+!oxE5VXTC42L%)v4t?aC-1WHXxv$zE
zMaM7{A4(<7V}`N0YO9R>m?)v_U=j|)RUPzP?F;ppyP@!el2P9cBj4A7abNSEX!4HH
z!8U_qMP7KKFO&%x?#->_QQrz4bT*!8WyF?gtYpnJs;vo3;a~}e98BXd!#S%Wws_z7
zgzHnn&`mU!R5%a;Ls=?6GEFJGF2ihY()XgB8f#efqYjQ)>GHZ%-KUW;TG{Z7gA+D<
zbX^8ve3E7LMh}J?PB}PjH#lK@h#_#+!8r@;-;`oti(=(w9bB-%B2SH;d=n`n`=TX7
z+4jVeQrd7MwW4ZW%Jscd=ce_!-C!te`P^(U%(!lC^@;30sw7tGaSbYKRQ3$g)?0O>
zwP)Y!Can9i^C|M{Vbr5a+T`_{l{L33H}_HltxXcO$m+tH+vifz{dX*5bv`E8a62v@
zgFCyMwoS72SAU)5gCFZVIhdrfNy`0)DwZ?-UsR^N@MFdREQ0vX6R*oWq;OC
z8s7VPYiP5&o78CkUy}(pJ(}w?RPy_mTIqQpH$_05$}s*+cLl@26{*C_sNWXBJ5E>2
zaCk*`xYy!=wCglDZZ;&{b<(5%Z)v*ciNQ`9hV!|tG4#Q3peM}oo*}5rRsYA?8H0or
z_f>j@GbGZ?X?!{zA<4)k9nUaHkyhI3WR_OD!}wN5K}R&DEyDEPLA_x|ohD+6{*Hhm
zJ!!l_b*9xMy)V-5Qi#h0&=igWR|uf#8wIWsK+`u0%n?9yJ_=L`pwS!!YA8{#fNS);
zPQIG7(Yh_yzJpz>{Xpp}t@fc#&nb*q1mom>0uFA_>UgpnE^gAwqVrfFErwfIOf}tj
z4HRnMaNrAVO5}>WD|FKnVeXL+L_YIUNBU;
zy*R`g)&qnQHV`o!re?}#Iq`%GWu@U_q4*%nq_Ha18AB+FWMp#5;CCN-aeys`mQ%`S
zF<&H-U+LvYX4K2SOdsi5eW(EfMq->$r8!I|B8i1jE-#C|eNxn+J^aV(l+0}5
z*}2QLRdX4uOp$h=b!tU9+(98-eSn*W9K!oFHxqfS+z3%Q<*{24j<89abH@X7yCbYq
z#wjw2)&48kOF=gX9SsE7CX9YApotb`zz(rqAwKyP`)>&T#O{wk3-?L7YS1Rm+3!+h
J*dz3?{|%^IV^#nF
literal 0
HcmV?d00001
diff --git a/tpo_lab3/target/test-classes/org/example/usecase/CreatInformationTest.class b/tpo_lab3/target/test-classes/org/example/usecase/CreatInformationTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..6d7774daeee915b84aaab012c12ccdc2df4c237b
GIT binary patch
literal 5362
zcmdT|dwdkt75;7#m`yT3ND&Ew1Pzj)u;2?75MuyELjV(lC~7CWcawqLnPp~{4OFRM
zebh&__0gBuxAsl#Lldc5Y^yEW*0%QD+LwK)ZLPJn4}Z1anVsEiViN72&F{y|oqNyy
z&g(np-sRAL?tc)#3cOr{3RD`XGBE)Y73#KHJFIxxa(d(Id$#ICpfGW{?byNT3YE<*
z-8G1z+CYtoT9^t`U9UH;`>jkit>fnhcG_2{>D9q1&)%Uue$+R&w1<#6F2>t!KUh{z
z#gk1;K^?KJL_%k&WX>?TRL)5Rw(G>(T*uF4w70Al^>~AUX(kTCbcM;oF%^uI>#epD
zeF}}uWeQ&n)Y4rK?yslYlWQ>(M;Mr8Vm6Lcm@Uq@S?z4M;=WF6$IfNqn{-dX85*0h
z9IIC=w9wdbWt-M##eAP;H)5`Vqf8u)CWU#gYZo=;Z71pG6`EgD)22|8ijKj21I;E{
zB#lkuD=KVKh-IvPJ7e$ClGbBQ9EXJp)p^SfmMren35BDY$9HsDOLq)$g&BQ8ko8ZC
z$MgC8BFpjfO#Y&Tn~6(^mzX#nCy+lRhQeV{enO6Q2A=Ko62-tt3P*_5MK)y_YCqoY
z_S(({4r_2CmI_H1%IH)Rr(v1G6hd~|z0O+a%v=z-j#xZqZdRvtMmqsxwF0LbSZU%6
ziPe!~#3~Y3n2<=@iEX0xOcQOQcE$*`oBHfvb;h#O6Uc4;)eh9)ESzm%t%-AR?y$1z
z>hrXfB&wg*I;&9Ce2%!kj)n}?-dZQno|nr8I=Q-EDuiq@uwG&2kj!~GC$KZRv|fV_
zY?KI{M+3`)OpR{d>Pc(HS-j{nalUvliC%u7$jFvU
zO}tTTsiQ3$EZ@(&UNST%h8`m2^T&5A&SY1K*+~;xM5`tExt@$280clfUrm}eMmSjO
zuq9+HiChg*SSpXLCbkL0R6>M8oo+^V^^t!9cDC!
zeudiB9yb>hHi`T$6K@jv+JbzS)$1>b;c_92;6@Cq{JqHTF|l`q?C~+Yg{109=R(V`
zHgU}ei4$UYE75w=mXJDy>rLDsBGR|%T$lDTF}#fir0l>iGwfy)Zx=a973EfGGQgJb
zMkX0g2-zIpSzB{-lFzJ7rpK+U9dGr0?S<`~nn+oGtlplp588*
zagVg0s_i*D5WhZW;`3s?#5eS7V@~@;`rd2eK3SB8C$1IOVi;uK9E*f2SFRM~117#G
zn-fmB?4o=0zs*hZOr6qhJGvv6>Cs-7^ePriyPL4m-Iiy|cQjcQ^w|vbg78=>9u?y$
zpkuK>Tiz-+&(onHYMR})ZxgiDaoiwm5yYGuVvdsU6f-Y(3qnmwNNXuZkNs_oJ>nY0
zr-UvK^%53Ysa;d!jI@>MNm@-Kq?(o}C(Dh_aXv>)Q7m-dEPg6Fo
zVG$g0*iyDG^t7yr@=`I%meBMvDekNa$WKY%&{+~4^Ne3-z^=2-%0}s&9z`HjRt#&?
zV#cY{&3OsE#ug?tjMO6GT_o_d^Gw%eoARveIvw=6Nxu$HkGN!%%5F+E_Sa$Il!;*X
z{3`xn;^*Plv-0(viSLGAf2zTs@w|b*n0Ntyh7od`
zl}>lE=`o|`TF22|TUweOX=_BcTi#O(7fA#E;NA9BVH(Y21OFO!(HZ7O6dd9f!h^ZY
zOGS92n#fB#f1vRBD8J);E50WzxDVKyD+TX31`!JFy9
zb05N!+BK
z!p-Vw+^U|zZDEn^VsmLlHJ-%x*ed!
z&Qp)zhxic-^cHmievF@>f)-4|Pw96ho}$EAsC$KhtuQdt;O`>FpuIXRk5_oD1g(v2G^3R^8yYc#h00*2kTg&ukse`eHeBavCjJPFq&eniY5+r{kYELsgK$W~k(v9%J@%h-A{YW_#ICWN8n`Y&i-1%8QN@!iPpKl0zN@f-S982zp^dWNGH
aDMk8Iawh&Zv6^w5iNEvx5`F(S8vYAa^Oh$7
literal 0
HcmV?d00001
diff --git a/tpo_lab3/target/test-classes/org/example/usecase/LoginPageTest.class b/tpo_lab3/target/test-classes/org/example/usecase/LoginPageTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..1dd5c6b3c4b6fae583b2cbfdc452e82a86f74d14
GIT binary patch
literal 4095
zcmc&%YgZfB72Q|J42Urhj9qXbmN8Cv*a%}9KX9D@#_>a7J75TLlXj3U(ttE0W=04n
zwVTy8X_Gc>(x&fs(>i^pZW|ly)%JT=e@K5t(|t!HAu!neRxhv7oqNyS=iI%|Id}Ny
zfA0Mqz^8COf)J`SgmvsdwLs&7v24ULhLwt4np=fvT?V=?H32t0AJJ
z4!Xc&wv&p<6(gI=$kKqE^VwL!w~AF7GqQF(p<$nn
zDE14qZ?$hm&Xu66vxa4)q(JvJKFYS8mvV{&mmUtFQ^P?WPvR+ogAesk+C^>)rj@h{
z0$q>vG~-*+Q8#)t^y)aIa-s9#j*6QEYO=KPO41rSEExp3xIj8^q(|S)_H3r?|HVRBHmhm
zhCG&$S!sFX>RAkH7|}7RxO!q6t^#v`9f^#YSX6GubevUgTQ<3!Nt@nS)-W^5=$wx8
z%4jEz{K>PX%p^5j6xg#~qN8cUnUqU;X(eP0#s%84Mk-~xMlP2&9r^6MX&DJdD;>q7
z3i*&b6L|sUNx0=q>&`cZbr%+gX+4V(qVzZtizpGL^%1JCzE3<
zs_n44G-L$!uG>7Hw>&c|%j*#=!crMyQ?SaUqer`7%w;4=Qu(>0!%>M4Udo$Z4S1G;
z5?5|Cn|HnFoaBG6Af**O9yP3Fbg(~~pnyh#VY$(aZKWbuMnS`hj_Y`ZtxP4=LZ021
z&zwoKn2|GM!>%hGzcmQx)PpZ$OL;@}-lr-4NOMIB!%Ewh}i+Mb3t1ol@JTi%rk!~{@u
z(~=YU?3{F_6mPs6;HwOdF1=-h;`omo|Bj1AfaWmGPFyLxfg0lR#^r+O+AKL>jg%
z+cN@!I((o9NgR>9F{HXOh*O(U9ikX++cq22DorCawew6@b+meapP$yn3BhAUD+u2z
z<&?j|`h~FX5zVm_o$6n_UN-Qusl6#iJim^bDq;w#h`nUeGZKsAM$V^N!;d$VP|-|a
zSH{TBC5_JYb9Nq~R_n7xqB_~+Ba?RCNyxKipk~lz6%~D|q=-La+n(z=Ms8esX*=mQ
z;+LDccR42;s&OlV*YSalpQ67J{hau%n)scLpZIToh~SU-P{W^e+{T~Trq}D%w3h8f
zrk)==eHrsCE8Dp)P?xQI`&VUw1e=PXonuL6q}v&{?ZteqvT6bXD=6Ktaq4
9LFZ_64#r}*i}=a=~&b#mD}1VDU>DxxQ!g6eEqs-4
zz}L7M@;CSLP1!xLv87_82sXY=Lk0VF{sP}9gPbCm0;ykxb`Lv&H9Qt#zLY{yAG|;t
zSNbYY>o=jkLmS}TZBRe44e9_5#ZoVY4BY5Z@4g9)fAsx!$e3eJs-?mEziu9j9*;C
zO9B(kFjkTH01YR@_pvzJ8orC{KNtcp&nEZqD)P6;dVTd>VI9}qN{xZ^hIxx6DNrXAvK!OrWyp4H$3kyC+gFO2UMEL$5
zG08%pK^X7g+xQOsck}lBF1|;_9CYCO_yHsNAuU@G`k1g`4X%^VbI=3o=eoGH=#YLRBn6lpGz
zyK`J|d&sBu4sQ4oG~+d&_>F5{*lvyCQj*(@JxSWK6yr6#LHbOd_!sz9S)6&20vtsn
zKa-pBG!y(74&peI`~*iQ`87F2iB1vaG;xNB^b9P1gB37B#52Tvj;Ldl;4B3>NAwHC
zAE$?lxP>@A!~{OVrLu4qYJK5C+)*0cDv!vsFCiGiyS{|N7p@)EAJcWHsG2WX?G@@)
zd{8iU{y?zZfnYcPPlA<*7iHp$RdAYrxq=^jjo3$`qa=Di57|MY50L0i5`BE7u{jg79lya^U2;3}_HCsW}E|uk*$l}JI(R~O%r#iqMj(*R%_o>sb
ggVAp|`U}_ga{d4V{cCkCLukiG{Jn!!+(YYs0nl>})&Kwi
literal 0
HcmV?d00001
diff --git a/tpo_lab3/target/test-classes/org/example/usecase/ProfileTest.class b/tpo_lab3/target/test-classes/org/example/usecase/ProfileTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..ca7a3ab63ec4212d4d770db56f92040fdb37ebbd
GIT binary patch
literal 3120
zcma)8*>fDl9sXt|Yoyg!mKEDbw(*4wE6LXQzz{4$uw@wwR<>b<9ET9nnr-d2G?!;)
zwK61uT;zZpI2Q@d9l{$`sY+o9SCYzG%9RIKC9iqSQ}Qo_d_6ltD_a)qR?YPE@9Xb(
z_OJWq|K9&IfJgC89yzp_Xtl5bZ3en$#k{ax;aBYQ)3ee^478n4zDgc5&{7zf%A*|}
zCh`_KVHwyQL={^u2rqP{{cNJ#*g(D_lhcu!mk~dD3IoNIvPPj@RBJ13#{LG8*Yb4?baHi-oP&W}s^|rvY;&h{l9dHL$19r0`Cn
zfvHaPqR+&33p=pWz`fdqAe8=PVaL*yzN&flMLFGYfhKyw7Zqt>fF`bs?LQxCqhlJo
z3%gD1v9K5W4DA0{tEj22{Blq?Q20nq7gHn^^<%$@`z<`6lh?n#qQ)Wv?Vearo_bO0
zWDZyu#E^lGx=_jCLnY}L*jHHJ(UF0vb{sU&TTPNMK5pCfdVN^bs`%snsalc*zP9+Txfye%C;f!68o>z@k6L(4$77ux({ejaEfel9y}JcVs)x8rbQHN=3yY
z467=VkIyJyIJ8zqI*!`pCoMdMB9j(Nzx
z1rf*fAS$QkwBu#-ky~(*XOnlzJ_7%)CH9t|F{7|09
z3z*jFW)b!_R}3``W3yDT-TN80algwMF-yL#P
z@02SRUeqPodby?&6JKCAZ1%1eOGm`g&itE{G51sJXi#PtHWigG&(*wX8BOZ&u;CU1
zN4QfWQu;faY)z_)g|j!^*2`OM4c-w0ona%44K;mPhNe`kNO#irgG8iFj%Ap#&DMB0
z*t4}zG2ONZm91BjXp1Yn>9Xi=;_E+Tz@UwLn#y;rGU4iu`br1h{Sn=WXm`0`u%EAT
z^0t0LW-~L0jb{yH7G&Z!mJ;F2O^7gyVZId9B1fKKiE%SzIPL4Ou4hi23W6j~A`wo=
zq#BgtZv5c3zSlTWS;Cvz@S{9l!jCO{9Yft1;>1t$_!-_Zam~Wd@e8)Jm2IN@`Cv}k
z#WbK~7c;_1g6Imf>Q5ftwu!P|pZs5ozn*3mK=si5NgyRM{_|)>?RO_EGcB!T3
ziP93rb6PZ!&0P3!=9v_{1!u)H4$Y-a{n?aWI>qy$1T6
zMjzB@%7S%d(K@nPDx;SR27}hh&N>SZ&*LiI#9Ms7i$CHz-#2j!|KPhNP0g#!C3to0
z#uom!Vkfp?KkmUW+wQ~Y!#K9{blX9;UF6$K#@+C-hb?;_1AiaB#S7L|+)o_?)baqX
zp@6q}VR{z_sL!UxgIFZnUwPNL$>a1Ej#2wj{1Xr2Uw8=r=7r@ycqC2eS(xPRz^nKM
zQ++KPwQzl7u7#_XM@%TbN$sGuf5W%&8q@s>t$Q8c;o9$V{xI4<;6%j{%CrE^bfLHb}wzQ=_*d>?P{tt<6S&RxY1@e}-#Gu!#Ki-Gx7TL<0l#jpAP
K4St8;qwoJRc1X(r
literal 0
HcmV?d00001
diff --git a/tpo_lab3/target/test-classes/org/example/usecase/SearchAdvanceAnswerTest.class b/tpo_lab3/target/test-classes/org/example/usecase/SearchAdvanceAnswerTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..f4bac55dfcf1b9ce731406dee7f96b68bd34c69c
GIT binary patch
literal 3589
zcma)8Sx_9u8UA_!4J;$TNX8%`32bCeF|sUMj*w&_Krzw+vKON$N{E}?W*OL-S?bg;jChQ^`}RlGi*YPpOJ4Z>cz6&kkZ&2IPI%?)m%g|M>o+
z|3Cikwbuch#IKV`pvFM0i8|~MXjzu4(#lIWXU!}ut4t`cd{~z
zX`&IPz&)Oyv(#1T6!OY?I<)hFKr*Moao=85K0jLf`csj}A`h*U9fTvTRNQ2u87-78
zGZ|H&k^@zIi$ymR+Ma8Td2Ud2lt0plR_rpc+r+(S6KJZIDPSym{)Egd33T;UD157+
z{<&80ej_@t$G~0_o!BR^Py68&lzT;5fyyh_E;`mlwNUnhb~@6PIVI3fJGbTSnJH+?
z16q6lT?V>M+>ZwY4!*5h)Ks$FtXC4~yQ`*)5hoQL#DfNUP4wvq_H3`Hd`Y0*kymZU
zepcy-4wx9kkU&F8+TlZo(<&oyf8X|wj`YvfV_2YlDGUq2amy-|O2g6(N{st(#&awU
z@nI7W;RsWQIU#Uw9GWP-(xGp=IZ82bRA8^RdOeW}ggUTNUe0zeaGS)#cvR=-klsCJ
z;vG0H&`gnOJLgWiXNqCyx!U3_V>6Lgj&eg{bpj_1oHFsa#%li-SjFrDb(y@KSv7#6lmKhtg$8Or`46Bax&X^FvXw+%FUiv*H~DceV5C59)VdYl8|a!W=ver
zwzSZe3o-~wo}Z1(smD{4R4N^rKI|06HS4U2r!{MX_N}+O+F&ZUr5;;7o|5i-oH7dJ_$_!gW%vHV;161=5%~>#UWj*ZW<5}f9^MtBN?ik=U>zG_nY{Drt8Ma@aV3r
zYwLq1KBSYl_DazX4SYmku(F7Xfy&50S(~^xs{&SI?Umu9_}73(B9>;Ie0@
zyo}7xN#EArF|jsWvgyyEs41+2co!Wb%(IXPk9#GSXGa|9IXkc^chq&gP)5B{pgR(~
zT;xMzEf)(m!)D2XZH+E+r~5iZ?F=e|#R}Nsj`oi1ZF%V|WMxm)t)9aIf-ZJd)Xru(
z%KHtajrM=wF0GK<`Sota$D|6QJDM3K@2WDXoOJ@do7_rQdR%7IK%_&a)RZj5p-HB_
zqMuP`Z5_PMP3~w!hIPTQfX{ed7=*qoOsR0m%LXm@)*X$x{O+^Hnj7$33x=9^;Co4Y
z7%!UmT=eyWBz}k=8The@pWvtLyBoD^yQ|)cvQiQB)F2mSCS)2jsh!HNKULOse5q{E
z6VlD*RnU|2yp>{Mq#{o7gHb`Lx~QwDlKt%;mQ`+lH=bgmW*bW$V_!)#QyCF+(sh+T
zmS>w)ED|H00r;AipIZaJVEcIsOq+RZ;8#^0w91Vb9Lg=jgKowp5w+@CPBon1`2SIU
zTU-U#x`9_Ae#1=yALGA1=J17&^WQ8p;1l>HzkpBiG!b1s!8PK$3F9^F1lDj*0vl5F
z$Oz73JF%-mQd2DHd7f!KpVmV0nJuK=w}sUEDD}cNQa=l{By}EA107BLhfdc5Vq{*MB_%12@q>(0XVMRsy&1@FfEANNVsE99she#?9&V%~l5iUoJ;7V
z>6r55Z3;KMwHtFc@vfJ!bLtkJxis`D7XC2Ms$vy6t-_wtdT;YhYraF8Z|D^)$1kYh2`aJ%Ozu>Q2
z|A~L$-`Dus%GGerg`1?qO;l!gUTT)L~3C;w-Hl7tNRu?Ht0oIc)VJMa$2LL7W#y
zF)fZ`CQ7$OBxzFvK94Ujy|2f+8tN_6YN%~}_s05;l4Ba>t)DU(@kM-zh#VAc_%gi`
z^ze81D!xX^FOYs3O>Yu}gn!nli!Qn;+4h)CZit<{P5j#vgINPB{sD
t9pB*E#@+Wx`zF4P@5HE)p5fz{1XfnsqV=Hs!^jLp`sQl!&cj!)x;9dJEqW{^$pWwNX!cV
zv}-I1mllnw?sOX{mDc+)@9t|X$>$-4ANn07+OknB0VO!d;ZFxanxC6Cl
z#3KrtR5W87!bq_Mn}i^P#v%Q^ByN?E*vUftoId
zl%%KwoeK7;=#t6n*j!POiJ>~rmyEn|L)ytLQ;5LrsAj{=owop)<6nHg|NOd$Jn)
z8Cr6_?|8>FtxzcRbIU7G%KLRYugMT=Dh}Wvp@!hV&|Jz&h^&n78rCdHQE-@Hx3qc<
zLk@-7(=vj)dTub3n7|<%k?8D|Uq@9ufhQU2Nb0EN1pXOAnA6ha`zB|^6nSC!0}2Kh
zwyooPILF*Y??;v`Nf7*sKY;gY5IfJ#XNMb;D6
z^m(yNz~7m=Qp92Caa0%iEj<}gaYlMlPo5P09SVHkwxrIpDn?~OD|OS*=Oy)d6=_Lb
zOVpEwC|smC$^CH^7vz2o?HA)E`JYj72^p#i+MN(f6#u5R`idr?k}8pYwJQl+#&Zg$
zR6LI>Wldlr=L$~ot@KPG9EN!6oJ`v_3dVXQM=f8tZs7Q0dSpq~GgX0t7Z_UCX)Xnp
zZ{)?D^8~Jg%d}<*M^SK)M!UeXrU+3+s*jHPU0%|0?JVssCp|kal8f9mxaBA9nJ`m&
z&hJY)!p(8VOSXr(>u*nB2D1usDh$j~Uyv}H3#gUR=onaIrghz>q58Kn!TS^oMV_1v!ywK8NTuC~g;ks|T%hV9^(bYdu$d;Ij#+>EWv?;ufv~AA^P87$bP(*@L
z#yGL;h$#8P9~M<^&RcpNgk7m5d6=7KhU!zoZq%}bJ8a6jB-ksZ3zn|R;$5cT2fAK2
zgy~)$EBL9bXO+283J%FFh6j5nHLOT?QHw5_u$x{9@b5$2jqMJ*(KxNaij%>}BX#L8_;*Zx#J9+{U3P
z^82xL@9%g#{s)dtRWu&Ytl~rrv~zkDPc!*(ZtY`i6&D%CnlQ0~$zM@7ejC@P_TR*d
ze>LiTD-fh>o{{Mc8BF0S{VT#~o}jlO(1r#|LlfGu6MNA~FP)<_p29x58oP+2n|S(&
zrw7-_jT!8RN%x_P!=c+f&wo#5e`>wNPgguj360*PFDz4YB{E
z0Sa0a98&NWn1ZV{#QP4N#_%rQqgm$mQ`&nUAL0{yLp!as+D)&WZ>ws^!WMi-^Y{1>
HKV!%La#0U_
literal 0
HcmV?d00001
From 1552820dbf25ddc4085500840594058bc47ffde2 Mon Sep 17 00:00:00 2001
From: LudwigMintus <105379599+LudwigMintus@users.noreply.github.com>
Date: Sun, 26 May 2024 15:23:18 +0300
Subject: [PATCH 2/4] fix
---
Profile.java | 73 ++++++++++++++++++++++++++++++++++++++++++++++++
ProfileTest.java | 71 ++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 144 insertions(+)
create mode 100644 Profile.java
create mode 100644 ProfileTest.java
diff --git a/Profile.java b/Profile.java
new file mode 100644
index 0000000..868d1e6
--- /dev/null
+++ b/Profile.java
@@ -0,0 +1,73 @@
+package org.example.pages;
+
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.PageFactory;
+
+public class Profile {
+
+ private WebDriver webDriver;
+
+ public Profile(WebDriver webDriver) {
+ PageFactory.initElements(webDriver, this);
+ this.webDriver = webDriver;
+ }
+
+ @FindBy(xpath = "//*[@id=\"profile-menu\"]/span/img")
+ private WebElement clickAvatar;
+
+
+ @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[3]/span/div/div/div/button[2]/a/span")
+ private WebElement clickSettings;
+
+ //*[@id="checkbox"]/input
+
+ @FindBy(xpath = "//*[@value=\"optInEmail\"]/input")
+ private WebElement clickCheckBoxEmail;
+
+ @FindBy(xpath = "//*[@value=\"optInEmailNotifications\"]/input")
+ private WebElement clickCheckBoxEmail2;
+
+ @FindBy(xpath = "//*[@value=\"optInDatabaseNotifications\"]/input")
+ private WebElement clickCheckBoxEmail3;
+
+ @FindBy(xpath = "//*[@value=\"optInNotifications\"]/input")
+ private WebElement clickCheckBoxEmail4;
+
+ @FindBy(xpath = "//*[@value=\"optInPpid\"]/input")
+ private WebElement clickCheckBoxEmail5;
+
+
+ public WebElement getClickCheckBoxEmail2() {
+ return clickCheckBoxEmail2;
+ }
+
+ public WebElement getClickCheckBoxEmail3() {
+ return clickCheckBoxEmail3;
+ }
+
+ public WebElement getClickCheckBoxEmail5() {
+ return clickCheckBoxEmail5;
+ }
+
+ public WebElement getClickCheckBoxEmail4() {
+ return clickCheckBoxEmail4;
+ }
+
+ public WebElement getClickAvatar() {
+ return clickAvatar;
+ }
+
+ public WebElement getClickSettings() {
+ return clickSettings;
+ }
+
+ public WebElement getClickCheckBoxEmail() {
+ return clickCheckBoxEmail;
+ }
+
+
+
+
+}
\ No newline at end of file
diff --git a/ProfileTest.java b/ProfileTest.java
new file mode 100644
index 0000000..3f8b83f
--- /dev/null
+++ b/ProfileTest.java
@@ -0,0 +1,71 @@
+package org.example.usecase;
+
+//import org.example.pages.SearchCarPage;
+
+import org.example.Utils;
+import org.example.pages.LoginPage;
+import org.example.pages.Profile;
+import org.junit.jupiter.api.Test;
+
+import static org.example.Utils.wait10Sec;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class ProfileTest {
+
+ @Test
+ void profileTest() {
+ Utils.getDrivers().forEach(webDriver -> {
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ LoginPage loginPage = new LoginPage(webDriver);
+ loginPage.getSignInButton().click();
+ loginPage.getSignInButtonWhitEmail().click();
+ loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
+ loginPage.getPasswordField().sendKeys("ww2N0mpD");
+ loginPage.getSubmit().click();
+
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ Profile profile = new Profile(webDriver);
+ profile.getClickAvatar().click();
+ profile.getClickSettings().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail2().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail3().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail4().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail5().click();
+
+ webDriver.quit();
+ });
+ }
+}
From d010dea18b6511512ae36b269d04471a1789073c Mon Sep 17 00:00:00 2001
From: Zhenya Mint
Date: Sun, 26 May 2024 15:31:34 +0300
Subject: [PATCH 3/4] fix
---
.DS_Store | Bin 6148 -> 6148 bytes
.idea/.gitignore | 8 ++
.idea/misc.xml | 6 ++
.idea/modules.xml | 8 ++
.idea/software-testing.iml | 9 +++
.idea/vcs.xml | 6 ++
Profile.java | 73 ------------------
ProfileTest.java | 71 -----------------
.../main/java/org/example/pages/Profile.java | 20 ++++-
.../java/org/example/usecase/ProfileTest.java | 12 +++
10 files changed, 66 insertions(+), 147 deletions(-)
create mode 100644 .idea/.gitignore
create mode 100644 .idea/misc.xml
create mode 100644 .idea/modules.xml
create mode 100644 .idea/software-testing.iml
create mode 100644 .idea/vcs.xml
delete mode 100644 Profile.java
delete mode 100644 ProfileTest.java
diff --git a/.DS_Store b/.DS_Store
index 16b599bba1dd15eca76e51b819bafb61fabdc5ca..7b0093dd2614599ac07e45bd06ac919781845e9e 100644
GIT binary patch
delta 66
zcmZoMXfc=|#>CJ*u~2NHo+2aD!~pBb1|lqz`I!yJJV)%4t@@xqRk7L
WzcWwf7cpdHm~6u%y*Wl?1v3DGI1B)qu~2NHo+2ab!~p9}j17!HMo)4*CqoEB0E0h6JcAE|BZCu=HuTKN
zPfp6oPhwzT5MW?nlm*gy|G@yrVqn0cBdNT&0IFk0QbA5;afyM!HAW_87FITP4t5T1
zj@aOg{PN(E#FEltr^KRY5HBP@KPM@%9?D5f3d>9_j~5Ve&d)1J%*;zI0_(_3Nli*D
ziV4rmOUW;H$}i1JDF$l}hDdO5a&X2ANK{uF85rs)7+IRt>L^rO8X4#)m>8SY)^c))
zD(hPZ#b@W_=H+*R9nZkX2%#Bx!L%-v2c)`z7>nP^f{XHU^7GPxvWy!)=CW*N=iui6
dhUUhP-)k3~T_&f)NA5<^Yi`%m8jqTrB_q
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..639900d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..3cc8d3a
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/software-testing.iml b/.idea/software-testing.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/software-testing.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Profile.java b/Profile.java
deleted file mode 100644
index 868d1e6..0000000
--- a/Profile.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.example.pages;
-
-import org.openqa.selenium.WebDriver;
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.support.FindBy;
-import org.openqa.selenium.support.PageFactory;
-
-public class Profile {
-
- private WebDriver webDriver;
-
- public Profile(WebDriver webDriver) {
- PageFactory.initElements(webDriver, this);
- this.webDriver = webDriver;
- }
-
- @FindBy(xpath = "//*[@id=\"profile-menu\"]/span/img")
- private WebElement clickAvatar;
-
-
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[3]/span/div/div/div/button[2]/a/span")
- private WebElement clickSettings;
-
- //*[@id="checkbox"]/input
-
- @FindBy(xpath = "//*[@value=\"optInEmail\"]/input")
- private WebElement clickCheckBoxEmail;
-
- @FindBy(xpath = "//*[@value=\"optInEmailNotifications\"]/input")
- private WebElement clickCheckBoxEmail2;
-
- @FindBy(xpath = "//*[@value=\"optInDatabaseNotifications\"]/input")
- private WebElement clickCheckBoxEmail3;
-
- @FindBy(xpath = "//*[@value=\"optInNotifications\"]/input")
- private WebElement clickCheckBoxEmail4;
-
- @FindBy(xpath = "//*[@value=\"optInPpid\"]/input")
- private WebElement clickCheckBoxEmail5;
-
-
- public WebElement getClickCheckBoxEmail2() {
- return clickCheckBoxEmail2;
- }
-
- public WebElement getClickCheckBoxEmail3() {
- return clickCheckBoxEmail3;
- }
-
- public WebElement getClickCheckBoxEmail5() {
- return clickCheckBoxEmail5;
- }
-
- public WebElement getClickCheckBoxEmail4() {
- return clickCheckBoxEmail4;
- }
-
- public WebElement getClickAvatar() {
- return clickAvatar;
- }
-
- public WebElement getClickSettings() {
- return clickSettings;
- }
-
- public WebElement getClickCheckBoxEmail() {
- return clickCheckBoxEmail;
- }
-
-
-
-
-}
\ No newline at end of file
diff --git a/ProfileTest.java b/ProfileTest.java
deleted file mode 100644
index 3f8b83f..0000000
--- a/ProfileTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.example.usecase;
-
-//import org.example.pages.SearchCarPage;
-
-import org.example.Utils;
-import org.example.pages.LoginPage;
-import org.example.pages.Profile;
-import org.junit.jupiter.api.Test;
-
-import static org.example.Utils.wait10Sec;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class ProfileTest {
-
- @Test
- void profileTest() {
- Utils.getDrivers().forEach(webDriver -> {
- webDriver.manage().window().maximize();
- //задержка на выполнение теста = 10 сек.
- wait10Sec(webDriver);
- webDriver.get("https://www.answers.com/");
- LoginPage loginPage = new LoginPage(webDriver);
- loginPage.getSignInButton().click();
- loginPage.getSignInButtonWhitEmail().click();
- loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
- loginPage.getPasswordField().sendKeys("ww2N0mpD");
- loginPage.getSubmit().click();
-
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- Profile profile = new Profile(webDriver);
- profile.getClickAvatar().click();
- profile.getClickSettings().click();
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- profile.getClickCheckBoxEmail().click();
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- profile.getClickCheckBoxEmail2().click();
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- profile.getClickCheckBoxEmail3().click();
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- profile.getClickCheckBoxEmail4().click();
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- profile.getClickCheckBoxEmail5().click();
-
- webDriver.quit();
- });
- }
-}
diff --git a/tpo_lab3/src/main/java/org/example/pages/Profile.java b/tpo_lab3/src/main/java/org/example/pages/Profile.java
index 00faf50..868d1e6 100644
--- a/tpo_lab3/src/main/java/org/example/pages/Profile.java
+++ b/tpo_lab3/src/main/java/org/example/pages/Profile.java
@@ -23,15 +23,22 @@ public Profile(WebDriver webDriver) {
//*[@id="checkbox"]/input
- @FindBy(xpath = "//*[@id=\"checkbox\"]/input")
+ @FindBy(xpath = "//*[@value=\"optInEmail\"]/input")
private WebElement clickCheckBoxEmail;
- @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div/div[4]/fieldset/div/label[1]/div/input")//TODO ПОЛНЫЕ ПУТИ
+ @FindBy(xpath = "//*[@value=\"optInEmailNotifications\"]/input")
private WebElement clickCheckBoxEmail2;
- @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div/div[4]/fieldset/div/label[2]/div/input")//TODO ПОЛНЫЕ ПУТИ
+ @FindBy(xpath = "//*[@value=\"optInDatabaseNotifications\"]/input")
private WebElement clickCheckBoxEmail3;
+ @FindBy(xpath = "//*[@value=\"optInNotifications\"]/input")
+ private WebElement clickCheckBoxEmail4;
+
+ @FindBy(xpath = "//*[@value=\"optInPpid\"]/input")
+ private WebElement clickCheckBoxEmail5;
+
+
public WebElement getClickCheckBoxEmail2() {
return clickCheckBoxEmail2;
}
@@ -40,6 +47,13 @@ public WebElement getClickCheckBoxEmail3() {
return clickCheckBoxEmail3;
}
+ public WebElement getClickCheckBoxEmail5() {
+ return clickCheckBoxEmail5;
+ }
+
+ public WebElement getClickCheckBoxEmail4() {
+ return clickCheckBoxEmail4;
+ }
public WebElement getClickAvatar() {
return clickAvatar;
diff --git a/tpo_lab3/src/test/java/org/example/usecase/ProfileTest.java b/tpo_lab3/src/test/java/org/example/usecase/ProfileTest.java
index 890c12e..3f8b83f 100644
--- a/tpo_lab3/src/test/java/org/example/usecase/ProfileTest.java
+++ b/tpo_lab3/src/test/java/org/example/usecase/ProfileTest.java
@@ -52,6 +52,18 @@ void profileTest() {
throw new RuntimeException(e);
}
profile.getClickCheckBoxEmail3().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail4().click();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ profile.getClickCheckBoxEmail5().click();
webDriver.quit();
});
From 34b7ee55006e233b2da17f6b1183f9fac0ce3f73 Mon Sep 17 00:00:00 2001
From: LudwigMintus <105379599+LudwigMintus@users.noreply.github.com>
Date: Mon, 27 May 2024 01:03:40 +0300
Subject: [PATCH 4/4] fix path
---
tpo_lab3/src/main/java/org/example/Utils.java | 7 ++-
.../org/example/pages/CreatInformation.java | 37 ++++++------
.../java/org/example/pages/LoginPage.java | 9 +--
.../main/java/org/example/pages/Profile.java | 2 +-
.../example/pages/SearchAdvanceAnswer.java | 59 +++++++++++++++++--
.../java/org/example/pages/SearchAnswer.java | 4 +-
.../src/test/java/org/example/EnvTest.java | 1 -
.../org/example/usecase/LoginPageTest.java | 46 ++++++++-------
.../usecase/SearchAdvanceAnswerTest.java | 45 ++++++++++----
.../org/example/usecase/SearchAnswerTest.java | 6 --
10 files changed, 142 insertions(+), 74 deletions(-)
diff --git a/tpo_lab3/src/main/java/org/example/Utils.java b/tpo_lab3/src/main/java/org/example/Utils.java
index 8b7d5c1..1e1b1a3 100644
--- a/tpo_lab3/src/main/java/org/example/Utils.java
+++ b/tpo_lab3/src/main/java/org/example/Utils.java
@@ -31,11 +31,12 @@ public static ChromeDriver getChromeDriver() {
public static List getDrivers() {
return List.of(
- getChromeDriver());
- // getFireFoxDriver());
+ getChromeDriver()//,
+ // getFireFoxDriver()
+ );
}
public static void wait10Sec(WebDriver webDriver) {
- webDriver.manage().timeouts().implicitlyWait(Duration.of(20, ChronoUnit.SECONDS));
+ webDriver.manage().timeouts().implicitlyWait(Duration.of(10, ChronoUnit.SECONDS));
}
}
diff --git a/tpo_lab3/src/main/java/org/example/pages/CreatInformation.java b/tpo_lab3/src/main/java/org/example/pages/CreatInformation.java
index 1cefad3..f5c7583 100644
--- a/tpo_lab3/src/main/java/org/example/pages/CreatInformation.java
+++ b/tpo_lab3/src/main/java/org/example/pages/CreatInformation.java
@@ -13,60 +13,60 @@ public CreatInformation(WebDriver webDriver) {
PageFactory.initElements(webDriver, this);
}
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[1]/div/button/button")
+ @FindBy(xpath = "//*[@class=\"block focus:outline-none\"]/button")
private WebElement creatSomeThing;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[1]/div/div/div/span[1]/button/img")
+ @FindBy(xpath = "//*[@class=\"undefined undefined\"]/../span[1]/button/img")
private WebElement creatQuestion;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[1]/div/div/div/span[2]/button/img")
+ @FindBy(xpath = "//*[@class=\"undefined undefined\"]/../span[2]/button/img")
private WebElement studyGuide;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div/div[2]/div[1]/textarea")
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div/div[2]/div[1]/textarea")
+ //*[@id="root"]/div/div[4]/div/div[2]
+ //*[@id="root"]/div/div[4]/div/div[2]/div/div[2]/div[1]/textarea
private WebElement textQuestion;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div/div[1]/button[2]")
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div/div[1]/button[2]")
private WebElement submitQuestion;
@FindBy(xpath = "//*[@id=\"question-title\"]")
private WebElement answer;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div/div[2]/div/div[2]/button/span\n")
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div/div[2]/div/div[2]/button/span\n")
private WebElement clickForAnswer;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[3]/textarea")
+ @FindBy(xpath = "//*[@class=\"p-4 bg-white md:rounded shadow-cardGlow\"]/div[3]/textarea")
private WebElement addATitle;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[5]/textarea")
+ @FindBy(xpath = "//*[@class=\"p-4 bg-white md:rounded shadow-cardGlow\"]/div[5]/textarea")
private WebElement addADescription;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[7]/div[1]/input")
+ @FindBy(xpath = "//*[@class=\" relative flex flex-row whitespace-nowrap space-x-2 no-scrollbar \"]/div[1]/input")
private WebElement addTags1;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[7]/div[2]/input")
+ @FindBy(xpath = "//*[@class=\" relative flex flex-row whitespace-nowrap space-x-2 no-scrollbar \"]/div[2]/input")
private WebElement addTags2;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[1]/div[7]/div[3]/input")
+ @FindBy(xpath = "//*[@class=\" relative flex flex-row whitespace-nowrap space-x-2 no-scrollbar \"]/div[3]/input")
private WebElement addTags3;
@FindBy(xpath = "//*[@id=\"editGuides\"]/div/div[1]/div[1]")
+
private WebElement addTerm;
@FindBy(xpath = "//*[@id=\"editGuides\"]/div/div[2]/div[1]")
private WebElement addDefinition;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/div[2]/div[2]/button[1]")
+ @FindBy(xpath = "//*[@class=\"p-4 mt-4 bg-white md:rounded shadow-cardGlow\"]/div[2]/button[1]")
private WebElement addNewCard;
-
- //@FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div[2]/div[2]/div/div/div[1]/div[1]")
- @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div[2]/div[2]/div/div/div[1]/div[1]") //TODO ПОЛНЫЕ ПУТИ
-
+ @FindBy(xpath = "//*[@id=\"editGuides\"]/../../div[2]/div/div/div[1]/div[1]")
private WebElement addTerm1;
- @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[2]/div[2]/div[2]/div/div/div[2]/div[1]") //TODO ПОЛНЫЕ ПУТИ
+ @FindBy(xpath = "//*[@id=\"editGuides\"]/../../div[2]/div/div/div[2]/div[1]")
private WebElement addDefinition1;
- @FindBy(xpath = " //*[@id=\"root\"]/div/div[2]/div/div[2]/h1/a")
+ @FindBy(xpath = "//*[text()='What color are the socks!!!!!']")
private WebElement textGuide;
@FindBy(xpath = "//*[@id=\"createButton\"]")
@@ -116,7 +116,6 @@ public WebElement getAddADescription() {
return addADescription;
}
-
public WebElement getCreatSomeThing() {
return creatSomeThing;
}
diff --git a/tpo_lab3/src/main/java/org/example/pages/LoginPage.java b/tpo_lab3/src/main/java/org/example/pages/LoginPage.java
index cf16d4f..4f76444 100644
--- a/tpo_lab3/src/main/java/org/example/pages/LoginPage.java
+++ b/tpo_lab3/src/main/java/org/example/pages/LoginPage.java
@@ -14,14 +14,14 @@ public LoginPage(WebDriver webDriver) {
this.webDriver = webDriver;
}
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[3]/span/button")
+ @FindBy(xpath = "//*[text()='Log in']")
private WebElement logInButton;
- @FindBy(xpath = "/html/body/div[1]/div[1]/div/div/div[4]/div/div[2]/div/div[2]/div[2]/div/button[4]")
+ @FindBy(xpath = "//*[text()='Log in with email']")
private WebElement logInWithEmail;
- @FindBy(xpath = "/html/body/div[1]/div[1]/div/div/div[4]/div/div[2]/div[2]/form/button")
+ @FindBy(xpath = "//*[@type=\"submit\"]")
private WebElement submit;
@@ -36,7 +36,8 @@ public LoginPage(WebDriver webDriver) {
private WebElement avatar;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[3]/span/div/div/div/button[3]/a/span")
+ @FindBy(xpath = "//*[@href=\'https://www.answers.com/logout']/span")
+ // @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[3]/span/div/div/div/button[3]/a/span")
private WebElement logUot;
@FindBy(xpath = "//*[@id=\"loginUser\"]/div[2]/span")
diff --git a/tpo_lab3/src/main/java/org/example/pages/Profile.java b/tpo_lab3/src/main/java/org/example/pages/Profile.java
index 868d1e6..5b7a522 100644
--- a/tpo_lab3/src/main/java/org/example/pages/Profile.java
+++ b/tpo_lab3/src/main/java/org/example/pages/Profile.java
@@ -18,7 +18,7 @@ public Profile(WebDriver webDriver) {
private WebElement clickAvatar;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[1]/div/div[4]/div[3]/span/div/div/div/button[2]/a/span")
+ @FindBy(xpath = "//*[@href=\'https://www.answers.com/user/profile']/span")
private WebElement clickSettings;
//*[@id="checkbox"]/input
diff --git a/tpo_lab3/src/main/java/org/example/pages/SearchAdvanceAnswer.java b/tpo_lab3/src/main/java/org/example/pages/SearchAdvanceAnswer.java
index 95699bf..a2de26b 100644
--- a/tpo_lab3/src/main/java/org/example/pages/SearchAdvanceAnswer.java
+++ b/tpo_lab3/src/main/java/org/example/pages/SearchAdvanceAnswer.java
@@ -14,29 +14,66 @@ public SearchAdvanceAnswer(WebDriver webDriver) {
this.webDriver = webDriver;
}
- @FindBy(xpath = "/html/body/div[1]/div[1]/div[2]/div/div/div[4]/form/div/div[1]/svg")
+ @FindBy(xpath = "//*[name()='use' and @*='#adv-config']")
private WebElement openAdvanceSearch;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/input")
+ @FindBy(xpath = "//*[@type=\"text\"]")
private WebElement searchTerm;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div[2]/button/div")
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[2]/button/div")
private WebElement contentType;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div[3]/button/div")
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[2]/div/div/span[1]/span")
+ private WebElement selectСontentType;
+
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[3]/button/div")
private WebElement subject;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[4]/div/div[2]/div[4]/button/div")
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[3]/div/div/span[1]/span")
+ private WebElement selectsubject;
+
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[4]/button/div")
private WebElement category;
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[4]/div/div/span[2]/span")
+ private WebElement selectCategory;
+
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[5]/div[3]/input")
+ private WebElement selectRadio;
+
+
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[6]/button/div")
+ private WebElement sortBy;
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[6]/div/div/span[1]")
+ private WebElement selectSortBy;
+ @FindBy(xpath = "//*[@role=\"dialog\"]/div[7]/button")
+ private WebElement search;
+ @FindBy(xpath = "//*[@type=\"number\"]")
+ private WebElement addNumber;
+
+ public WebElement getSelectSortBy() {
+ return selectSortBy;
+ }
+ public WebElement getSearch() {
+ return search;
+ }
+ public WebElement getAddNumber() {
+ return addNumber;
+ }
+ public WebElement getSortBy() {
+ return sortBy;
+ }
+
+ public WebElement getSelectRadio() {
+ return selectRadio;
+ }
public WebElement getOpenAdvanceSearch() {
return openAdvanceSearch;
}
-
public WebElement getSearchTerm() {
return searchTerm;
}
@@ -52,6 +89,16 @@ public WebElement getSubject() {
public WebElement getCategory() {
return category;
}
+ public WebElement getSelectСontentType() {
+ return selectСontentType;
+ }
+ public WebElement getSelectsubject() {
+ return selectsubject;
+ }
+
+ public WebElement getSelectCategory() {
+ return selectCategory;
+ }
}
diff --git a/tpo_lab3/src/main/java/org/example/pages/SearchAnswer.java b/tpo_lab3/src/main/java/org/example/pages/SearchAnswer.java
index 2b62eb9..14af8e2 100644
--- a/tpo_lab3/src/main/java/org/example/pages/SearchAnswer.java
+++ b/tpo_lab3/src/main/java/org/example/pages/SearchAnswer.java
@@ -14,10 +14,10 @@ public SearchAnswer(WebDriver webDriver) {
@FindBy(xpath = "//*[@id=\"search-input\"]")
private WebElement inputField;
- @FindBy(xpath = "//*[@id=\"root\"]/div/div[2]/main/section[1]/div[2]/button")
+ @FindBy(xpath = "//*[@class=\"py-2 px-3 rounded-md flex items-center justify-center bg-primaryColor text-secondaryLight caption3 ml-1\"]")
private WebElement searchButton;
- @FindBy(xpath = " //*[@id=\"best-answer\"]/div[4]/div[2]/button[2]")
+ @FindBy(xpath = "//*[@id=\"best-answer\"]/div[4]/div[2]/button[2]")
private WebElement viewPage;
@FindBy(xpath = "//*[@id=\"top-answer\"]/div[2]/div[1]/div/p")
diff --git a/tpo_lab3/src/test/java/org/example/EnvTest.java b/tpo_lab3/src/test/java/org/example/EnvTest.java
index d012693..ba60a39 100644
--- a/tpo_lab3/src/test/java/org/example/EnvTest.java
+++ b/tpo_lab3/src/test/java/org/example/EnvTest.java
@@ -5,7 +5,6 @@
import static org.junit.jupiter.api.Assertions.assertTrue;
public class EnvTest {
-
@Test
void test() {
assertTrue(true);
diff --git a/tpo_lab3/src/test/java/org/example/usecase/LoginPageTest.java b/tpo_lab3/src/test/java/org/example/usecase/LoginPageTest.java
index f92c75c..92d177e 100644
--- a/tpo_lab3/src/test/java/org/example/usecase/LoginPageTest.java
+++ b/tpo_lab3/src/test/java/org/example/usecase/LoginPageTest.java
@@ -81,27 +81,29 @@ void logoutTest() {
@Test
void loginErrorTest() {
- WebDriver webDriver = Utils.getChromeDriver();
- webDriver.manage().window().maximize();
- //задержка на выполнение теста = 10 сек.
- wait10Sec(webDriver);
- webDriver.get("https://www.answers.com/");
- LoginPage loginPage = new LoginPage(webDriver);
- loginPage.getSignInButton().click();
- loginPage.getSignInButtonWhitEmail().click();
- loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
- loginPage.getPasswordField().sendKeys("4234");
- loginPage.getSubmit().click();
- String text = loginPage.getErrorMessage().getText();
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- webDriver.quit();
- assertEquals(
- "Passwords must be between 8 and 40 characters long",
- text
- );
+ Utils.getDrivers().forEach(webDriver -> {
+ webDriver.manage().window().maximize();
+ webDriver.manage().window().maximize();
+ //задержка на выполнение теста = 10 сек.
+ wait10Sec(webDriver);
+ webDriver.get("https://www.answers.com/");
+ LoginPage loginPage = new LoginPage(webDriver);
+ loginPage.getSignInButton().click();
+ loginPage.getSignInButtonWhitEmail().click();
+ loginPage.getEmailField().sendKeys("maggisapphire@finacenter.com");
+ loginPage.getPasswordField().sendKeys("4234");
+ loginPage.getSubmit().click();
+ String text = loginPage.getErrorMessage().getText();
+ try {
+ Thread.sleep(3000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ webDriver.quit();
+ assertEquals(
+ "Passwords must be between 8 and 40 characters long",
+ text
+ );
+ });
}
}
diff --git a/tpo_lab3/src/test/java/org/example/usecase/SearchAdvanceAnswerTest.java b/tpo_lab3/src/test/java/org/example/usecase/SearchAdvanceAnswerTest.java
index c09c836..0636d52 100644
--- a/tpo_lab3/src/test/java/org/example/usecase/SearchAdvanceAnswerTest.java
+++ b/tpo_lab3/src/test/java/org/example/usecase/SearchAdvanceAnswerTest.java
@@ -5,11 +5,15 @@
import org.example.pages.SearchAdvanceAnswer;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
+import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import java.time.Duration;
import static org.example.Utils.wait10Sec;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
public class SearchAdvanceAnswerTest {
@@ -36,15 +40,17 @@ void searchAdvance() {
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
- webDriver.get("https://www.answers.com/search?filter=all");
+ webDriver.get("https://www.answers.com/search");
SearchAdvanceAnswer searchAdvanceAnswer = new SearchAdvanceAnswer(webDriver);
wait10Sec(webDriver);
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- searchAdvanceAnswer.getOpenAdvanceSearch().click(); //TODO Не кликается и дальше не проверял
+ System.out.println( webDriver.getCurrentUrl());
+ // webDriver.findElements(By.xpath("//*[@id=\"root\"]")).forEach(WebElement::);
+// var fsdf =43;
+// var fdsf = webDriver.findElement(By.xpath("/html/body/div[1]/div[1]/div[2]/div/div/div[1]/div/div[3]/form/div/div/div/div[1]/svg/use"));
+// var dsad = searchAdvanceAnswer.getOpenAdvanceSearch();
+ // searchAdvanceAnswer.getOpenAdvanceSearch().click();
+ new WebDriverWait(webDriver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.xpath("//*[name()='use' and @*='#adv-config']/.."))).click();
+ System.out.println(searchAdvanceAnswer.getOpenAdvanceSearch().getText());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
@@ -57,24 +63,43 @@ void searchAdvance() {
throw new RuntimeException(e);
}
searchAdvanceAnswer.getContentType().click();
+ searchAdvanceAnswer.getSelectСontentType().click();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
searchAdvanceAnswer.getCategory().click();
+ searchAdvanceAnswer.getSelectCategory().click();
+
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
searchAdvanceAnswer.getSubject().click();
+ searchAdvanceAnswer.getSelectsubject().click();
+
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
-
+ searchAdvanceAnswer.getSelectRadio().click();
+ searchAdvanceAnswer.getAddNumber().sendKeys("3");
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ searchAdvanceAnswer.getSortBy().click();
+ searchAdvanceAnswer.getSelectSortBy().click();
+ searchAdvanceAnswer.getSearch().click();
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
webDriver.quit();
});
}
diff --git a/tpo_lab3/src/test/java/org/example/usecase/SearchAnswerTest.java b/tpo_lab3/src/test/java/org/example/usecase/SearchAnswerTest.java
index bcabae1..1788328 100644
--- a/tpo_lab3/src/test/java/org/example/usecase/SearchAnswerTest.java
+++ b/tpo_lab3/src/test/java/org/example/usecase/SearchAnswerTest.java
@@ -19,12 +19,6 @@
public class SearchAnswerTest {
-
- @BeforeEach
- void init() {
-
- }
-
@Test
void searchAnswer() {
Utils.getDrivers().forEach(webDriver -> {