diff --git a/Nagaytseva/.gitignore b/Nagaytseva/.gitignore new file mode 100644 index 0000000..3bac491 --- /dev/null +++ b/Nagaytseva/.gitignore @@ -0,0 +1,156 @@ + +# Created by https://www.gitignore.io/api/intellij,java,maven,gradle,eclipse,netbeans + +### Intellij ### +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm + +*.iml +nb-configuration.xml + +## Directory-based project format: +.idea/ +.target +# if you remove the above rule, at least ignore the following: + +# User-specific stuff: +# .idea/workspace.xml +# .idea/tasks.xml +# .idea/dictionaries +# .idea/shelf + +# Sensitive or high-churn files: +# .idea/dataSources.ids +# .idea/dataSources.xml +# .idea/sqlDataSources.xml +# .idea/dynamic.xml +# .idea/uiDesigner.xml + +# Gradle: +# .idea/gradle.xml +# .idea/libraries + +# Mongo Explorer plugin: +# .idea/mongoSettings.xml + +## File-based project format: +*.ipr +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + + +### Java ### +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + + +### Maven ### +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties + + +### Gradle ### +.gradle +build/ + +# Ignore Gradle GUI config +gradle-app.setting + +# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) +!gradle-wrapper.jar + +# Cache of project +.gradletasknamecache + + +### Eclipse ### + +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath + +# Eclipse Core +.project + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + + +### NetBeans ### +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +nbactions.xml +.nb-gradle/ + +*.log + +csv/ \ No newline at end of file diff --git a/Nagaytseva/README.md b/Nagaytseva/README.md new file mode 100644 index 0000000..635e81b --- /dev/null +++ b/Nagaytseva/README.md @@ -0,0 +1,2 @@ +Selenium WebDriver example project + diff --git a/Nagaytseva/pom.xml b/Nagaytseva/pom.xml new file mode 100644 index 0000000..756ca36 --- /dev/null +++ b/Nagaytseva/pom.xml @@ -0,0 +1,49 @@ + + + 4.0.0 + tis-2017 + tis-2017 + 1.0 + + UTF-8 + 1.8 + 1.8 + + + + + org.seleniumhq.selenium + selenium-java + 3.6.0 + + + org.junit.jupiter + junit-jupiter-api + 5.1.0-RC1 + + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.4 + + + true + + true + lib/ + ru.ulstu.tis.Main + + + lib/ + + + + + + + \ No newline at end of file diff --git a/Nagaytseva/src/main/java/ru/ulstu/tis/Main.java b/Nagaytseva/src/main/java/ru/ulstu/tis/Main.java new file mode 100644 index 0000000..aa6f1d2 --- /dev/null +++ b/Nagaytseva/src/main/java/ru/ulstu/tis/Main.java @@ -0,0 +1,8 @@ +package ru.ulstu.tis; + +public class Main { + + public static void main(String[] args) { + System.out.println("666"); + } +} diff --git a/Nagaytseva/src/main/resources/drivers/chromedriver b/Nagaytseva/src/main/resources/drivers/chromedriver new file mode 100644 index 0000000..02ff671 Binary files /dev/null and b/Nagaytseva/src/main/resources/drivers/chromedriver differ diff --git a/Nagaytseva/src/main/resources/drivers/chromedriver.exe b/Nagaytseva/src/main/resources/drivers/chromedriver.exe new file mode 100644 index 0000000..28a4067 Binary files /dev/null and b/Nagaytseva/src/main/resources/drivers/chromedriver.exe differ diff --git a/Nagaytseva/src/main/resources/drivers/geckodriver b/Nagaytseva/src/main/resources/drivers/geckodriver new file mode 100644 index 0000000..ba1da8c Binary files /dev/null and b/Nagaytseva/src/main/resources/drivers/geckodriver differ diff --git a/Nagaytseva/src/main/resources/drivers/geckodriver.exe b/Nagaytseva/src/main/resources/drivers/geckodriver.exe new file mode 100644 index 0000000..6208aa8 Binary files /dev/null and b/Nagaytseva/src/main/resources/drivers/geckodriver.exe differ diff --git a/Nagaytseva/src/test/java/DownloadDoc.java b/Nagaytseva/src/test/java/DownloadDoc.java new file mode 100644 index 0000000..3b74d8f --- /dev/null +++ b/Nagaytseva/src/test/java/DownloadDoc.java @@ -0,0 +1,84 @@ +import context.ChromeContext; +import context.Context; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.openqa.selenium.Dimension; +import org.openqa.selenium.support.PageFactory; +import page.PageGosCertification; +import page.PageMain; +import page.PagePriceList; +import page.PageProgrammProduct; + +import java.io.File; + +import static java.security.spec.MGF1ParameterSpec.SHA1; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class DownloadDoc { + private final static String APP_URL = "https://1c.ru/"; + + private static Context context; + private int menuItemNumber; + private int imgNumber; + private static String tmpPath; + + + + @BeforeAll + public static void setup() { + context = new ChromeContext(); + context.start(); + context.getDriver().manage().window().setSize(new Dimension(1600, 900)); + context.getDriver().get(APP_URL); + tmpPath = context.getTmpPath(); + } + + @AfterAll + public static void quit() { + context.close(); + } + + @Test + public void testDownloandZip() throws InterruptedException { + context.getDriver().get(APP_URL); + PageMain page = PageFactory.initElements(context.getDriver(), PageMain.class); + menuItemNumber = 4; + page.clickFooterMenuItem(menuItemNumber); + PagePriceList pagePriceList = PageFactory.initElements(context.getDriver(), PagePriceList.class); + String fileName = pagePriceList.getFileName(); + pagePriceList.clickBtn(); + checkDownload(fileName,100,100); + } + + @Test + public void testDownloandOpenChrome() throws InterruptedException { + context.getDriver().get(APP_URL); + PageMain page = PageFactory.initElements(context.getDriver(), PageMain.class); + menuItemNumber = 3; + page.clickFooterMenuItem(menuItemNumber); + PageProgrammProduct pageProgrammProduct = PageFactory.initElements(context.getDriver(), PageProgrammProduct.class); + menuItemNumber = 5; + pageProgrammProduct.clickLeftMenu(menuItemNumber); + PageGosCertification pageGosCertification = PageFactory.initElements(context.getDriver(), PageGosCertification.class); + imgNumber = 2; + String fileName = pageGosCertification.getFileNameImg(imgNumber); + pageGosCertification.clickiImg(imgNumber); + Assertions.assertTrue(pageGosCertification.checkOpenImg(fileName)); + } + + private void checkDownload(String fileName,int timeout, int period) throws InterruptedException { + File f = new File(tmpPath +fileName); + int time=0; + while(!f.exists()&&time prefs = new HashMap(); + tmpPath = System.getProperty("user.dir") + "/src/main/resources/downloads/"; + prefs.put("download.default_directory",tmpPath); + driver = new ChromeDriver(); + } + + @Override + protected String getDriverExecutable(boolean isWindows) { + return isWindows ? WINDOWS_DRIVER : LINUX_DRIVER; + } + + @Override + protected String getDriverType() { + return DRIVER_TYPE; + } +} diff --git a/Nagaytseva/src/test/java/context/Context.java b/Nagaytseva/src/test/java/context/Context.java new file mode 100644 index 0000000..9fc26d3 --- /dev/null +++ b/Nagaytseva/src/test/java/context/Context.java @@ -0,0 +1,46 @@ +package context; + +import org.openqa.selenium.WebDriver; + +import java.util.concurrent.TimeUnit; + +public abstract class Context { + private final static String DRIVER_LOCATION = "drivers/%s"; + protected WebDriver driver; + protected String tmpPath; + public WebDriver getDriver() { + if (driver != null) { + return driver; + } + throw new IllegalStateException("WebDriver is not initialized"); + } + + public void start() { + System.setProperty(getDriverType(), getDriverExecutablePath()); + createDriver(); + // это плохая инструкция для автотестов, т.к. лучше задавать для конкретного элемента или кейса + driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); + } + + public void close() { + driver.quit(); + } + + protected abstract void createDriver(); + + protected abstract String getDriverType(); + + protected abstract String getDriverExecutable(boolean windows); + + private String getDriverExecutablePath() { + return Context.class.getClassLoader().getResource( + String.format(DRIVER_LOCATION, getDriverExecutable(isWindows()))).getFile(); + } + public String getTmpPath(){ + return tmpPath; + } + + private boolean isWindows() { + return System.getProperty("os.name").toLowerCase().contains("windows"); + } +} diff --git a/Nagaytseva/src/test/java/context/FirefoxContext.java b/Nagaytseva/src/test/java/context/FirefoxContext.java new file mode 100644 index 0000000..1d5c163 --- /dev/null +++ b/Nagaytseva/src/test/java/context/FirefoxContext.java @@ -0,0 +1,24 @@ +package context; + +import org.openqa.selenium.firefox.FirefoxDriver; + +public class FirefoxContext extends Context { + private final static String WINDOWS_DRIVER = "geckodriver.exe"; + private final static String LINUX_DRIVER = "geckodriver"; + private final static String DRIVER_TYPE = "webdriver.gecko.driver"; + + @Override + protected void createDriver() { + driver = new FirefoxDriver(); + } + + @Override + protected String getDriverExecutable(boolean isWindows) { + return isWindows ? WINDOWS_DRIVER : LINUX_DRIVER; + } + + @Override + protected String getDriverType() { + return DRIVER_TYPE; + } +} diff --git a/Nagaytseva/src/test/java/page/BrowserWindow.java b/Nagaytseva/src/test/java/page/BrowserWindow.java new file mode 100644 index 0000000..c5436c7 --- /dev/null +++ b/Nagaytseva/src/test/java/page/BrowserWindow.java @@ -0,0 +1,39 @@ +package page; + + import org.openqa.selenium.WebDriver; + import org.openqa.selenium.WebElement; + import org.openqa.selenium.support.FindBy; + + import java.util.List; + +public class BrowserWindow { + WebDriver driver; + @FindBy(xpath = "//*[@id=\"email\"]") + private WebElement textFieldEmail; + @FindBy(className = "btn") + private WebElement btnSubscribe; + @FindBy(css = ".widebox h3") + private List text; + + public BrowserWindow(WebDriver driver) { + this.driver = driver; + } + + public void insertText(String text) { + + textFieldEmail.sendKeys(text); + } + + public void clickSubscribe() { + + btnSubscribe.click(); + } + + public boolean subscribeTrue() { + if (text.get(1).getText().contains("Ваши данные приняты")) { + return true; + } + return false; + + } +} diff --git a/Nagaytseva/src/test/java/page/PageFirm1C.java b/Nagaytseva/src/test/java/page/PageFirm1C.java new file mode 100644 index 0000000..2ea4038 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageFirm1C.java @@ -0,0 +1,55 @@ +package page; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.ui.ExpectedConditions; + +import java.util.List; + +public class PageFirm1C { + WebDriver driver; + + @FindBy(css = ".sidebar-menu li") + private List itemMenu; + + @FindBy(xpath = "//*[@id=\"main_field\"]/h4[1]/a") + private WebElement linlVacancy; + + private static int systemManagmentMenuElementNumber = 5; + + public PageFirm1C(WebDriver driver) { + this.driver = driver; + } + + public void clickSystemManagment() { + itemMenu.get(systemManagmentMenuElementNumber).click(); + } + + public void clickLeftMenu(int number) { + itemMenu.get(number).click(); + } + + public void clickVacancy() { + itemMenu.get(4).click(); + } + + public void clickVacancyLink() { + linlVacancy.click(); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public boolean disposalVacancyList() { + return driver.findElement(By.cssSelector("#dept6")).isDisplayed(); + } + + public boolean footerMenuList() { + return driver.findElement(By.cssSelector(".widebox")).isDisplayed(); + } + +} diff --git a/Nagaytseva/src/test/java/page/PageGosCertification.java b/Nagaytseva/src/test/java/page/PageGosCertification.java new file mode 100644 index 0000000..310c356 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageGosCertification.java @@ -0,0 +1,40 @@ +package page; + +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.io.File; +import java.util.List; + +public class PageGosCertification { + WebDriver driver; + + @FindBy(css = ".widebox a") + private List elementImg; + + public PageGosCertification(WebDriver driver) { + this.driver = driver; + } + + public void clickiImg(int number) { + elementImg.get(number).click(); + } + + public String getFileNameImg(int elementNumber) { + String fileName = elementImg.get(elementNumber).getAttribute("href"); + fileName = fileName.substring(fileName.lastIndexOf("/") + 1); + return fileName; + } + + public boolean checkOpenImg(String str) { + boolean check = false; + File f = new File(str); + String s = driver.getCurrentUrl(); + if (s.contains(str)) + check = true; + return check; + } + +} diff --git a/Nagaytseva/src/test/java/page/PageInformationRelease.java b/Nagaytseva/src/test/java/page/PageInformationRelease.java new file mode 100644 index 0000000..c37df3c --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageInformationRelease.java @@ -0,0 +1,43 @@ +package page; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; + +public class PageInformationRelease { + WebDriver driver; + + @FindBy(className = "previous") + private WebElement elementBackBtmNews; + + @FindBy(className = "next") + private WebElement elementNextBtmNews; + + @FindBy(id = "pagecontentforsolr") + private WebElement content; + + @FindBy(xpath = "//*[@id=\"pagecontentforsolr\"]/div[4]") + private WebElement title; + + public PageInformationRelease(WebDriver driver) { + this.driver = driver; + } + + public void clickBtmBack() { + elementBackBtmNews.click(); + } + + public void clickBtmNext() { + elementBackBtmNews.click(); + } + + public boolean disposeMainInformation() { + return content.isDisplayed(); + } + + public boolean displayNewsInformationTrue(String str) { + return title.getText().contains(str); + } +} diff --git a/Nagaytseva/src/test/java/page/PageInformers.java b/Nagaytseva/src/test/java/page/PageInformers.java new file mode 100644 index 0000000..af33f68 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageInformers.java @@ -0,0 +1,46 @@ +package page; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.List; + +public class PageInformers { + WebDriver driver; + + @FindBy(xpath = "//*[@id=\"pagecontentforsolr\"]/table[1]/tbody/tr/td[2]/form/textarea") + private WebElement elementCode; + + @FindBy(name = "limit") + private WebElement textField; + + @FindBy(xpath = "//*[@id=\"pagecontentforsolr\"]/table[1]/tbody/tr/td[2]/form/table/tbody/tr[4]/td/input") + private WebElement formBtn; + + public PageInformers(WebDriver driver) { + this.driver = driver; + } + + public void insertText(String text) { + textField.clear(); + textField.sendKeys(text); + } + + private String strCode; + + public void clickBtn() { + formBtn.click(); + strCode = elementCode.getAttribute("value"); + } + + public boolean checkWorkInformer() { + boolean check = false; + String strTexyField = textField.getAttribute("value"); + String strCode1 = strCode; + if (strCode1.contains(strTexyField)) + check = true; + return check; + } +} diff --git a/Nagaytseva/src/test/java/page/PageListFirm.java b/Nagaytseva/src/test/java/page/PageListFirm.java new file mode 100644 index 0000000..d0ab465 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageListFirm.java @@ -0,0 +1,43 @@ +package page; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.List; + +public class PageListFirm { + WebDriver driver; + @FindBy(css = ".content select") + private WebElement selectListCity; + + @FindBy(xpath = "//*[@id=\"pagecontentforsolr\"]/table/tbody/tr[1]/th[2]/select/option[17]") + private WebElement itemListCity; + + @FindBy(css = "tr") + private List tr; + + public PageListFirm(WebDriver driver) { + this.driver = driver; + } + + public void clickCity() { + selectListCity.click(); + itemListCity.click(); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public boolean checkSortCity() { + boolean checkSearch = false; + int count = tr.size(); + for (int i = 0; i < count; i++) { + if (tr.get(i).getText().contains(itemListCity.getText())) + checkSearch = true; + } + return checkSearch; + } +} diff --git a/Nagaytseva/src/test/java/page/PageMain.java b/Nagaytseva/src/test/java/page/PageMain.java new file mode 100644 index 0000000..3511e27 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageMain.java @@ -0,0 +1,92 @@ +package page; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.List; + +public class PageMain { + WebDriver driver; + + @FindBy(css = ".header-navigation li") + private WebElement menuElementsList; + + @FindBy(css = ".header-tools a") + private List menuElements; + + @FindBy(css = ".footer-container .span6 .row ul a") + private List footerMenuElements; + + @FindBy(xpath = "/html/body/div[1]/div[2]/div[3]/div[1]/a") + private WebElement buttomNewsElements; + + @FindBy(css = ".span6 dl a") + private List linkElement; + + @FindBy(className = "subscribe") + private WebElement linkElementSubscribe; + + public PageMain(WebDriver driver) { + this.driver = driver; + } + + public void clickHeadMenuList() { + driver.findElement(By.className("droppable")).findElement(By.tagName("span")).click(); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public void clickMenuLink() { + menuElementsList.click(); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public void clickTopMenuItem(int number) { + + menuElements.get(number).click(); + } + + public void clickFooterMenuItem(int number) { + footerMenuElements.get(number).click(); + } + + public void clickButtomNews() { + + buttomNewsElements.click(); + } + + public void clickLinkNews() { + linkElement.get(3).click(); + } + + public void clickLinkNews5() { + linkElement.get(5).click(); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public String getTextTitleNews() { + String str = linkElement.get(3).getText(); + return str; + } + + public boolean menuList() { + return !(driver.findElement(By.xpath("/html/body/div[1]/div[1]/div/div[2]/div[2]/ul/div/li[1]/a")).isDisplayed()); + } + + public boolean menuOutLink() { + return driver.findElement(By.cssSelector(".left-content")).isDisplayed(); + } +} diff --git a/Nagaytseva/src/test/java/page/PageNews.java b/Nagaytseva/src/test/java/page/PageNews.java new file mode 100644 index 0000000..e073e26 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageNews.java @@ -0,0 +1,145 @@ +package page; + +import org.openqa.selenium.By; +import org.openqa.selenium.Keys; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +public class PageNews { + WebDriver driver; + + @FindBy(name = "query") + private WebElement elementEntryField; + @FindBy(className = "btn") + private WebElement elementBtnSearch; + @FindBy(className = "next") + private WebElement elementNextBtmNews; + @FindBy(id = "date_from") + private WebElement elementDateFrom; + @FindBy(css = " .table-condensed td") + private List elementDateNumber; + @FindBy(id = "date_to") + private WebElement elementDateTo; + @FindBy(css = ".widebox li") + private List elementListNews; + @FindBy(className = "datepicker-switch") + private WebElement elementMonth; + @FindBy(className = "prev") + private WebElement elementBack; + + public PageNews(WebDriver driver) { + this.driver = driver; + } + + public void insertSearchText(String text) { + + + elementEntryField.sendKeys(text); + + } + + private int strDayFirst; + private int strDayLast; + private String strMonthFirst; + private String strMonthLast; + + public void clickBtmSearch() { + elementBtnSearch.click(); + } + + public void submitSearch() { + elementEntryField.sendKeys(Keys.RETURN); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public void clickSelectionDate(int number1) { + elementDateFrom.click(); + elementBack.click(); + elementDateNumber.get(number1).click(); + strDayFirst = Integer.parseInt(elementDateNumber.get(number1).getText()); + strMonthFirst = elementMonth.getText(); + + + } + + public void clickSelectionDateL(int number2) { + + elementDateTo.click(); + elementDateNumber.get(number2).click(); + strDayLast = Integer.parseInt(elementDateNumber.get(number2).getText()); + strMonthLast = elementMonth.getText(); + driver.findElement(By.className("cats")).click(); + + + } + + public boolean disposeBlockNews() { + return driver.findElement(By.className("redhead")).isDisplayed(); + } + + + public boolean checkSearchParametrsFirstLastDay() throws ParseException { + boolean checkSearch = false; + int count = elementListNews.size(); + String firstDayNewsList = elementListNews.get(0).getText().substring(0, elementListNews.get(0).getText().indexOf("\n")); + String enDayNewsList = elementListNews.get(count - 1).getText().substring(0, elementListNews.get(count - 1).getText().indexOf("\n")); + String fDayNumber = elementDateFrom.getAttribute("value"); + String eDayNumber = elementDateTo.getAttribute("value"); + SimpleDateFormat newDateFormat = new SimpleDateFormat("dd.MM.yyyy", Locale.getDefault()); + SimpleDateFormat oldDateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.getDefault()); + + Date dateFirstList = oldDateFormat.parse(firstDayNewsList); + Date dateEndList = oldDateFormat.parse(enDayNewsList); + Date dateFDay = newDateFormat.parse(fDayNumber); + Date dateEDay = newDateFormat.parse(eDayNumber); + + if ((dateFirstList.before(dateEDay) || dateFirstList.equals(dateEDay)) && (dateEndList.after(dateFDay) || dateEndList.equals(dateFDay)) ) { + checkSearch = true; + } + return checkSearch; + } + + public boolean checkSearchParametrsLastDay() throws ParseException { + boolean checkSearch = false; + String firstDayNewsList = elementListNews.get(0).getText(); + String dateTo = elementDateTo.getAttribute("value"); + + String dateInString = firstDayNewsList.substring(0, firstDayNewsList.indexOf("\n"));//создаю строку по заданному формату + String oldDateString = dateInString; + SimpleDateFormat newDateFormat = new SimpleDateFormat("dd.MM.yyyy", Locale.getDefault()); + SimpleDateFormat oldDateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.getDefault()); + + Date date = oldDateFormat.parse(oldDateString); + String result = newDateFormat.format(date); + + Date date1 = newDateFormat.parse(dateTo); + + if (date1.after(date) || date1.equals(date)) { + checkSearch = true; + } + return checkSearch; + } + + public boolean checkSearch() { + boolean checkSearch = false; + int count = elementListNews.size(); + String strSearch = elementEntryField.getAttribute("value"); + for (int i = 0; i < count - 1; i++) { + if (elementListNews.get(i).getText().contains(strSearch)) + checkSearch = true; + } + return checkSearch; + } + +} diff --git a/Nagaytseva/src/test/java/page/PagePartnersFirm.java b/Nagaytseva/src/test/java/page/PagePartnersFirm.java new file mode 100644 index 0000000..c4ace5e --- /dev/null +++ b/Nagaytseva/src/test/java/page/PagePartnersFirm.java @@ -0,0 +1,91 @@ +package page; + +import org.openqa.selenium.By; +import org.openqa.selenium.Keys; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.List; + +public class PagePartnersFirm { + WebDriver driver; + + @FindBy(className = "btn-danger") + private WebElement elementBtn; + + @FindBy(css = ".table input") + private List elementInput; + + @FindBy(xpath = "//*[@id=\"pagecontentforsolr\"]/div/form/span[7]/span") + private WebElement elementSpan; + + public PagePartnersFirm(WebDriver driver) { + this.driver = driver; + } + + public void insertSearchText(int i, String Inn, + int i1, String email, + int i2, String phone, + int i3, String name) { + + elementInput.get(i).sendKeys(Inn); + + elementInput.get(i2).sendKeys(phone); + + elementInput.get(i1).sendKeys(email); + + elementInput.get(i3).sendKeys(name); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public void clickCheckBox(int cBox, + int cBox1, + int cBox2, + int cBox3, + int cBox4) { + elementInput.get(cBox).click(); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + elementInput.get(cBox1).click(); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + elementInput.get(cBox2).click(); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + elementInput.get(cBox3).click(); + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + elementInput.get(cBox4).click(); + } + + + public void clickBtnRequest() { + elementBtn.click(); + } + + public void submitRequest() { + elementBtn.sendKeys(Keys.RETURN); + } + + public boolean displayForm() { + return elementSpan.getText().contains("Благодрим вас за отправленную анкету"); + } + +} diff --git a/Nagaytseva/src/test/java/page/PagePriceList.java b/Nagaytseva/src/test/java/page/PagePriceList.java new file mode 100644 index 0000000..4919078 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PagePriceList.java @@ -0,0 +1,36 @@ +package page; + +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.io.File; +import java.util.List; + +public class PagePriceList { + WebDriver driver; + + @FindBy(className = "btn") + private WebElement elementBtn; + + public PagePriceList(WebDriver driver) { + this.driver = driver; + } + + public String getFileName() { + String fileName = elementBtn.getAttribute("href"); + fileName = fileName.substring(fileName.lastIndexOf("/") + 1); + return fileName; + } + + public void clickBtn() { + elementBtn.click(); + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + +} diff --git a/Nagaytseva/src/test/java/page/PageProgrammProduct.java b/Nagaytseva/src/test/java/page/PageProgrammProduct.java new file mode 100644 index 0000000..c62f11d --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageProgrammProduct.java @@ -0,0 +1,24 @@ +package page; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.List; + +public class PageProgrammProduct { + WebDriver driver; + + @FindBy(css = ".dropdown a") + private List elementMenu; + + public PageProgrammProduct(WebDriver driver) { + this.driver = driver; + } + + public void clickLeftMenu(int number) { + + elementMenu.get(number).click(); + + } +} diff --git a/Nagaytseva/src/test/java/page/PageSearch.java b/Nagaytseva/src/test/java/page/PageSearch.java new file mode 100644 index 0000000..c592073 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageSearch.java @@ -0,0 +1,42 @@ +package page; + +import org.openqa.selenium.By; +import org.openqa.selenium.Keys; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.List; + +public class PageSearch { + WebDriver driver; + + @FindBy(css = ".dropdown li") + private List leftMenuElement; + + @FindBy(css = ".header-navigation li") + private List topMenuElement; + @FindBy(xpath = "//*[@id=\"queryString\"]") + private WebElement searchField; + + @FindBy(xpath = "//*[@id=\"searchForm\"]/button") + private WebElement searchBtn; + + private static int topMenuElementNumber = 1; + + public PageSearch(WebDriver driver) { + this.driver = driver; + } + + public void clickLeftMenu(int number) { + leftMenuElement.get(number).click(); + } + + public void clickTopMenu() { + topMenuElement.get(topMenuElementNumber).click(); + } + + public boolean searchPage() { + return driver.findElement(By.cssSelector("#pagecontentforsolr")).isDisplayed(); + } +} diff --git a/Nagaytseva/src/test/java/page/PageSystemManagment.java b/Nagaytseva/src/test/java/page/PageSystemManagment.java new file mode 100644 index 0000000..a530f13 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageSystemManagment.java @@ -0,0 +1,60 @@ +package page; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.List; + +public class PageSystemManagment { + WebDriver driver; + + @FindBy(css = ".widebox a") + private List paginationElement; + + @FindBy(css = ".sidebar-menu li") + private List itemLeftMenu; + + @FindBy(className = "scope") + private List elementPopUpWindow; + + @FindBy(css = ".scope .from") + private WebElement windowPopUp; + + @FindBy(css = ".widebox a") + private List elementtLinkText; + + public PageSystemManagment(WebDriver driver) { + this.driver = driver; + } + + public void clickLeftMenuListPagination() { + itemLeftMenu.get(4).click(); + } + + public void clickLeftMenuListWindiw() { + itemLeftMenu.get(3).click(); + } + + public void clickPaginationElement() { + paginationElement.get(3).click(); + } + + public void clickPopUpWindowElement() { + elementPopUpWindow.get(0).click(); + } + + public void clickLinkText() { + elementtLinkText.get(1).click(); + } + + public boolean paginationCheck() { + return driver.findElement(By.cssSelector(".ndate")).isDisplayed(); + } + + public boolean popUpWindowCheck() { + return windowPopUp.isDisplayed(); + } + +} diff --git a/Nagaytseva/src/test/java/page/PageUserCertification.java b/Nagaytseva/src/test/java/page/PageUserCertification.java new file mode 100644 index 0000000..32a8202 --- /dev/null +++ b/Nagaytseva/src/test/java/page/PageUserCertification.java @@ -0,0 +1,47 @@ +package page; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.List; + +public class PageUserCertification { + WebDriver driver; + + @FindBy(className = "country-list-li") + private List itemListCountry; + + @FindBy(name = "reg") + private WebElement selectListCity; + + @FindBy(xpath = "//*[@id=\"pagecontentforsolr\"]/form[2]/select/option[8]") + private WebElement itemListCity; + + @FindBy(css = "tr") + private List tr; + + public PageUserCertification(WebDriver driver) { + this.driver = driver; + } + + public void clickFilterCountry(int number) { + itemListCountry.get(number).click(); + } + + public void clickFilterCity() { + selectListCity.click(); + itemListCity.click(); + } + + public boolean checkSortByFilterCity() { + boolean checkSearch = false; + int count = tr.size(); + for (int i = 0; i < count; i++) { + if (tr.get(i).getText().contains(itemListCity.getText())) + checkSearch = true; + } + return checkSearch; + } + +} diff --git a/Nagaytseva/src/test/java/page/SearchPage.java b/Nagaytseva/src/test/java/page/SearchPage.java new file mode 100644 index 0000000..82b04ba --- /dev/null +++ b/Nagaytseva/src/test/java/page/SearchPage.java @@ -0,0 +1,37 @@ +package page; + +import org.openqa.selenium.By; +import org.openqa.selenium.Keys; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +public class SearchPage { + WebDriver driver; + + @FindBy(css = "input.header-search-input") + private WebElement inputField; + + @FindBy(xpath = "//*[@class='menu border']/a[7]") + private WebElement usersLink; + + public SearchPage(WebDriver driver) { + this.driver = driver; + } + + public SearchPage setSearchString(String text) { + inputField.sendKeys(text); + return this; + } + public void clickSubmitButton() { + inputField.sendKeys(Keys.RETURN); + } + + public void clickUsersLink() { + usersLink.click(); + } + + public boolean isUserPresent() { + return driver.findElement(By.cssSelector(".user-list-info")).isDisplayed(); + } +}