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=6Ktaq49LFZ_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 -> {