diff --git a/Rukavishnikova/pom.xml b/Rukavishnikova/pom.xml new file mode 100644 index 0000000..6acbed6 --- /dev/null +++ b/Rukavishnikova/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + project_testing + project_testing + 1.0-SNAPSHOT + + + + + junit + junit + 4.12 + test + + + + org.seleniumhq.selenium + selenium-java + 3.4.0 + + + + org.testng + testng + 6.9.10 + test + + + + + \ No newline at end of file diff --git a/Rukavishnikova/src/test/java/ru/oriflame/pages/AnotherLinks.java b/Rukavishnikova/src/test/java/ru/oriflame/pages/AnotherLinks.java new file mode 100644 index 0000000..5c75c73 --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/pages/AnotherLinks.java @@ -0,0 +1,51 @@ +package ru.oriflame.pages; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +public class AnotherLinks { + public WebDriver driver; + + public AnotherLinks(WebDriver driver) { + this.driver = driver; + } + + @FindBy(className = "shipping-info-link") + private WebElement form; + + @FindBy(linkText = "Контакты Сервисных Центров Орифлэйм") + private WebElement contactsServicesCenters; + + @FindBy(css = "nav.w-grid > div:nth-child(1) > div:nth-child(1) > a:nth-child(1)") + private WebElement oriLogo; + + public void formClicking () { form.click(); } + + public void clickingContactsServicesCenters() { + contactsServicesCenters.click(); + } + + public void clickingOrifalemLogo() { oriLogo.click(); } + + public boolean assertMainMenu() { return driver.findElement(By.cssSelector("#main > div")).isDisplayed(); } + + public boolean assertContactsServicesCenters() { + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return driver.findElement(By.cssSelector("body > div.w-grid")).isDisplayed(); + } + + public boolean assertFormClick() { + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return driver.findElement(By.cssSelector("#pdp-shipping-popup")).isDisplayed(); + } +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/pages/ChangeLanguages.java b/Rukavishnikova/src/test/java/ru/oriflame/pages/ChangeLanguages.java new file mode 100644 index 0000000..5e53518 --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/pages/ChangeLanguages.java @@ -0,0 +1,45 @@ +package ru.oriflame.pages; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +public class ChangeLanguages { + + public WebDriver driver; + + public ChangeLanguages(WebDriver driver) { + this.driver = driver; + } + + @FindBy(xpath = "//*[@id=\"accordion-2\"]") + private WebElement asiaButton; + + @FindBy(xpath = "//*[@id=\"sect2\"]/ul[1]/li[1]/a/span") + private WebElement chinaLink; + + public void asiaButtonClicking() { + asiaButton.click(); + } + + public void chinaLinking() { + chinaLink.click(); + } + + public boolean assertChangelanguag() { + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + try { + return driver.findElement(By.cssSelector("body > header > div > div.ui-sticky-bar.js-sticky-bar > div.w-sticky-bar-list.clearfix > ul > li.catalogue.left.only-for-desktop-size > a")).getText().indexOf("产品目录") >= 0; + } + catch (Exception e) + { + return false; + } + } +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/pages/FilterBy.java b/Rukavishnikova/src/test/java/ru/oriflame/pages/FilterBy.java new file mode 100644 index 0000000..689c624 --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/pages/FilterBy.java @@ -0,0 +1,167 @@ +package ru.oriflame.pages; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +public class FilterBy { + + public WebDriver driver; + + public FilterBy(WebDriver driver) { + this.driver = driver; + } + + @FindBy(xpath = "//*[@id=\"primary-navigation\"]/ul/li[2]/a") + private WebElement face; + + @FindBy(xpath = "//*[@id=\"main\"]/div[5]/div/section/div[1]/div/div/div[1]/div[1]") + private WebElement openedFilterrBy; + + @FindBy(xpath = "//*[@id=\"main\"]/div[5]/div/section/div[1]/div/div/div[3]/form/ul/li[2]/h3") + private WebElement filetrByIndications; + + @FindBy(xpath = "//*[@id=\"main\"]/div[5]/div/section/div[1]/div/div/div[3]/form/ul/li[5]/h3") + private WebElement filterByAge; + + @FindBy(xpath = "//*[@id=\"main\"]/div[5]/div/section/div[1]/div/div/div[3]/form/ul/li[3]/h3") + private WebElement filterByAdvantage; + + @FindBy(xpath = "//*[@id=\"main\"]/div[5]/div/section/div[1]/div/div/div[3]/form/ul/li[6]/h3") + private WebElement filterByBrand; + + @FindBy(xpath = "//*[@id=\"main\"]/div[5]/div/section/div[1]/div/div/div[3]/form/ul/li[5]/div/ul[1]/li[1]/a") + private WebElement age12; + + @FindBy(xpath = "//*[@id=\"main\"]/div[5]/div/section/div[1]/div/div/div[3]/form/ul/li[3]/div/ul[1]/li[1]/a") + private WebElement anti; + + public void faceClick() { + face.click(); + } + + public void FilterByAdvantageAnti() { + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + anti.click(); + } + + public void filterByAge12() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + age12.click(); + } + + public void openingFilterBy() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + openedFilterrBy.click(); + } + + public void clickingFilterByIndications() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + filetrByIndications.click(); } + + public void clickingFilterByAge() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + filterByAge.click(); + } + + public void clickingFilterByAdvantage () { + try { + Thread.sleep(15000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + filterByAdvantage.click(); + } + + public void clickingFilterByBrand() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + filterByBrand.click(); + } + + public boolean AssertFilterBy() { + return driver.findElement(By.cssSelector("#main > div:nth-child(5) > div > section > div.w-filter-bar > div > div > div.w-filter-box.w-filter-box-no-css.fixed > form")).isDisplayed(); + } + + public boolean AssertByIndications() { + return driver.findElement(By.cssSelector("#main > div:nth-child(5) > div > section > div.w-filter-bar > div > div > div.w-filter-box.w-filter-box-no-css.fixed > form > ul > li.facet.row.g-all.opened > div > ul:nth-child(1)")).isDisplayed(); + } + + public boolean assertFilterByBrand() { + return driver.findElement(By.cssSelector("li.facet:nth-child(6) > div:nth-child(2) > ul:nth-child(1)")).isDisplayed(); + } + + public boolean assertFilterByAdvantage() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + return driver.findElement(By.cssSelector("#main > div:nth-child(5) > div > section > div.w-filter-bar > div > div > div.w-filter-box.w-filter-box-no-css.fixed > form > ul > li.facet.row.g-all.opened > div > ul:nth-child(1)")).isDisplayed(); + } + + public boolean assertFilterByAge() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + try { + return driver.findElement(By.cssSelector("#main > div:nth-child(5) > div > section > div.w-filter-bar > div > div > div.w-filtering-info.g-all > div.w-filtered-facets > span")).getText().indexOf("12+") >= 0; + } + catch (Exception e) + { + return false; + } + } + + public boolean assertFilterByAdvantageAnti() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + try { + return driver.findElement(By.cssSelector("#main > div:nth-child(5) > div > section > div.w-filter-bar > div > div > div.w-filtering-info.g-all > div.w-filtered-facets > span")).getText().indexOf("Антивозрастной Уход") >= 0; + } + catch (Exception e) + { + return false; + } + } +} + diff --git a/Rukavishnikova/src/test/java/ru/oriflame/pages/MainPage.java b/Rukavishnikova/src/test/java/ru/oriflame/pages/MainPage.java new file mode 100644 index 0000000..790f93d --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/pages/MainPage.java @@ -0,0 +1,66 @@ +package ru.oriflame.pages; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +public class MainPage { + public static WebDriver driver; + + public MainPage(WebDriver driver) { + this.driver = driver; + } + + @FindBy(xpath = "//*[@id=\"primary-navigation\"]/ul/li[2]/a") + private WebElement face; + + @FindBy(css = "body > header > div > div.ui-header-bar > nav > div > div.ui-logo > a > span > svg") + private WebElement main; + + @FindBy(css = "body > header > div > div.ui-sticky-bar.js-sticky-bar > div.w-sticky-bar-list.clearfix > ul > li:nth-child(3) > a") + private WebElement registr; + + @FindBy(css = "body > footer > div.ui-standard-footer.w-grid > ul > li:nth-child(3) > a") + private WebElement podval; + + @FindBy(css = "#hero-promo-slider > div.rsOverflow > div > div.rsSlide.rsActiveSlide > div > article > a > div.image-A1 > img") + private WebElement banner; + + @FindBy(css = "#main > div:nth-child(5) > div > section > section > a:nth-child(1) > div.figure > img") + private WebElement product; + + public void faceClick() { face.click(); } + + public void mainClick() { main.click(); } + + public void registrClick() { registr.click(); } + + public void podvalClick() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + podval.click(); + } + + public void bannerClick() { banner.click(); } + + public void productClick() { product.click(); } + + public static boolean assertHeightMenu() { return driver.findElement(By.cssSelector("#main > div.w-top-area-banner.category-skincare.with-background.with-img > div.ui-banner-image > img")).isDisplayed(); } + + public static boolean assertBanner() { return driver.findElement(By.cssSelector("#facets-search-results > section")).isDisplayed(); } + + public static boolean assertProduct() { return driver.findElement(By.cssSelector("#pdp-image-slider > div.rsOverflow > div > div:nth-child(1) > div > img")).isDisplayed(); } + + public static boolean assertRegister() { return driver.findElement(By.cssSelector("#main > div.w-content > div > div > p")).isDisplayed(); } + + public static boolean assertDown() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + }return driver.findElement(By.cssSelector("#main > div > div > div")).isDisplayed(); } +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/pages/MultiMedia.java b/Rukavishnikova/src/test/java/ru/oriflame/pages/MultiMedia.java new file mode 100644 index 0000000..ffa5037 --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/pages/MultiMedia.java @@ -0,0 +1,27 @@ +package ru.oriflame.pages; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +public class MultiMedia { + + public WebDriver driver; + + public MultiMedia(WebDriver driver) { + this.driver = driver; + } + + @FindBy(xpath = "//*[@id=\"block-block-5\"]/p/a") + private WebElement playVideo; + + public void playVideoElement() { + playVideo.click(); + } + + public boolean assertVideoPlay() { + return driver.findElement(By.cssSelector("body > div.mfp-wrap.mfp-close-btn-in.mfp-auto-cursor.mfp-ready > div > div > div > button")).isDisplayed(); + } + +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/pages/Search.java b/Rukavishnikova/src/test/java/ru/oriflame/pages/Search.java new file mode 100644 index 0000000..08e00fd --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/pages/Search.java @@ -0,0 +1,44 @@ +package ru.oriflame.pages; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.List; + +public class Search { + + public WebDriver driver; + + public Search(WebDriver driver) { + this.driver = driver; + } + + @FindBy(css = "#global-search") + private WebElement searchField; + + @FindBy(css = "#form-search > fieldset > button") + private WebElement searchButton; + + @FindBy(css = "#main > div.w-content.ui-search-content.mode-products-search") + private List listResultSearch; + + public void inputSearchField(String text) { + searchField.click(); + searchField.sendKeys(text); + } + + public void clickSearchingButton() { + searchButton.click(); + } + + public boolean checkSearch(String strSearch) { + boolean checkSearch = false; + int count = listResultSearch.size(); + for (int i = 0; i < count - 1; i++) { + if (listResultSearch.get(i).getText().contains(strSearch)) + checkSearch = true; + } + return true; + } +} \ No newline at end of file diff --git a/Rukavishnikova/src/test/java/ru/oriflame/pages/SortBy.java b/Rukavishnikova/src/test/java/ru/oriflame/pages/SortBy.java new file mode 100644 index 0000000..245439b --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/pages/SortBy.java @@ -0,0 +1,65 @@ +package ru.oriflame.pages; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +public class SortBy { + + public WebDriver driver; + + public SortBy(WebDriver driver) { + this.driver = driver; + } + + @FindBy(xpath = "//*[@id=\"primary-navigation\"]/ul/li[2]/a") + private WebElement face; + + @FindBy(xpath = "//*[@id=\"main\"]/div[5]/div/section/div[1]/div/div/div[1]/div[2]") + private WebElement sortingBy; + + @FindBy(xpath = "//*[@id=\"main\"]/div[5]/div/section/div[1]/div/div/div[2]/ul/li[2]/span/label") + private WebElement byPopular; + + public void faceClick() { + face.click(); + } + + public void sortByClick() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + sortingBy.click(); + } + + public void sortByPopularClick() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + byPopular.click(); + } + + public boolean assertShowMenuSort() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return driver.findElement(By.cssSelector("#main > div:nth-child(5) > div > section > div.w-filter-bar > div > div > div.w-sort-box.fixed > ul")).isDisplayed(); + } + + public boolean assertcheckLinkBySort() { + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return driver.findElement(By.cssSelector("#main > div:nth-child(5) > div > section > div.w-filter-bar > div > div > div.w-filtering-info.g-all > div.w-filtered-facets > span")).getText().indexOf("популярности") >= 0; + + } +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/tests/AnotherlinksTest.java b/Rukavishnikova/src/test/java/ru/oriflame/tests/AnotherlinksTest.java new file mode 100644 index 0000000..463a6b8 --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/tests/AnotherlinksTest.java @@ -0,0 +1,53 @@ +package ru.oriflame.tests; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openqa.selenium.support.PageFactory; +import ru.oriflame.context.ChromeContext; +import ru.oriflame.context.Context; +import ru.oriflame.pages.AnotherLinks; + +public class AnotherlinksTest { + + private final static String APP_URL = "https://www.oriflame.ru/products/product?code=32418"; + private static Context context; + + @BeforeClass + public static void setup() { + context = new ChromeContext(); + context.start(); + } + + @AfterClass + public static void quit() { + context.close(); + } + + @Test + public void checkFormClick() { + context.getDriver().get(APP_URL); + AnotherLinks anotherLinks = PageFactory.initElements(context.getDriver(), AnotherLinks.class); + anotherLinks.formClicking(); + Assert.assertTrue(anotherLinks.assertFormClick()); + } + + @Test + public void checkContactsSCClick() { + context.getDriver().get(APP_URL); + AnotherLinks anotherLinks = PageFactory.initElements(context.getDriver(), AnotherLinks.class); + anotherLinks.formClicking(); + anotherLinks.clickingContactsServicesCenters(); + Assert.assertTrue(anotherLinks.assertContactsServicesCenters()); + } + + @Test + public void checkOriflameLogoClickingFromMainPage() { + context.getDriver().get(APP_URL); + AnotherLinks anotherLinks = PageFactory.initElements(context.getDriver(), AnotherLinks.class); + anotherLinks.clickingOrifalemLogo(); + Assert.assertTrue(anotherLinks.assertMainMenu()); + } + +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/tests/ChangeLanguageTest.java b/Rukavishnikova/src/test/java/ru/oriflame/tests/ChangeLanguageTest.java new file mode 100644 index 0000000..49b1523 --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/tests/ChangeLanguageTest.java @@ -0,0 +1,39 @@ +package ru.oriflame.tests; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openqa.selenium.support.PageFactory; +import ru.oriflame.context.ChromeContext; +import ru.oriflame.context.Context; +import ru.oriflame.pages.ChangeLanguages; +import ru.oriflame.pages.MainPage; + +public class ChangeLanguageTest { + + private final static String APP_URL = "https://www.oriflame.ru"; + private static Context context; + + @BeforeClass + public static void setup() { + context = new ChromeContext(); + context.start(); + } + + @AfterClass + public static void quit() { + context.close(); + } + + @Test + public void checkChangelanguage() { + context.getDriver().get(APP_URL); + MainPage mainPage = PageFactory.initElements(context.getDriver(), MainPage.class); + mainPage.podvalClick(); + ChangeLanguages changeLanguage = PageFactory.initElements(context.getDriver(), ChangeLanguages.class); + changeLanguage.asiaButtonClicking(); + changeLanguage.chinaLinking(); + Assert.assertTrue(changeLanguage.assertChangelanguag()); + } +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/tests/FilterByTest.java b/Rukavishnikova/src/test/java/ru/oriflame/tests/FilterByTest.java new file mode 100644 index 0000000..c5aec02 --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/tests/FilterByTest.java @@ -0,0 +1,88 @@ +package ru.oriflame.tests; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openqa.selenium.support.PageFactory; +import ru.oriflame.context.ChromeContext; +import ru.oriflame.context.Context; +import ru.oriflame.pages.FilterBy; + +public class FilterByTest { + + private final static String APP_URL = "https://www.oriflame.ru"; + private static Context context; + + @BeforeClass + public static void setup() { + context = new ChromeContext(); + context.start(); + } + + @AfterClass + public static void quit() { + context.close(); + } + + @Test + public void checkOpenFilters() { + context.getDriver().get(APP_URL); + FilterBy filterBy = PageFactory.initElements(context.getDriver(), FilterBy.class); + filterBy.faceClick(); + filterBy.openingFilterBy(); + filterBy.AssertFilterBy(); + } + + @Test + public void checkFilterByIndications() { + context.getDriver().get(APP_URL); + FilterBy filterBy = PageFactory.initElements(context.getDriver(), FilterBy.class); + filterBy.faceClick(); + filterBy.openingFilterBy(); + filterBy.clickingFilterByIndications(); + filterBy.AssertByIndications(); + } + + @Test + public void checkFilterByBrand() { + context.getDriver().get(APP_URL); + FilterBy filterBy = PageFactory.initElements(context.getDriver(), FilterBy.class); + filterBy.faceClick(); + filterBy.openingFilterBy(); + filterBy.clickingFilterByBrand(); + Assert.assertTrue(filterBy.assertFilterByBrand()); + } + + @Test + public void checkFilterByAge() { + context.getDriver().get(APP_URL); + FilterBy filterBy = PageFactory.initElements(context.getDriver(), FilterBy.class); + filterBy.faceClick(); + filterBy.openingFilterBy(); + filterBy.clickingFilterByAge(); + filterBy.filterByAge12(); + Assert.assertTrue(filterBy.assertFilterByAge()); + } + + @Test + public void checkFilterByAdvantage() { + context.getDriver().get(APP_URL); + FilterBy filterBy = PageFactory.initElements(context.getDriver(), FilterBy.class); + filterBy.faceClick(); + filterBy.openingFilterBy(); + filterBy.clickingFilterByAdvantage(); + Assert.assertTrue(filterBy.assertFilterByAdvantage()); + } + + @Test + public void checkFilterByAdvantageOsv() { + context.getDriver().get(APP_URL); + FilterBy filterBy = PageFactory.initElements(context.getDriver(), FilterBy.class); + filterBy.faceClick(); + filterBy.openingFilterBy(); + filterBy.clickingFilterByAdvantage(); + filterBy.FilterByAdvantageAnti(); + Assert.assertTrue(filterBy.assertFilterByAdvantageAnti()); + } +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/tests/MainPageTest.java b/Rukavishnikova/src/test/java/ru/oriflame/tests/MainPageTest.java new file mode 100644 index 0000000..d64392c --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/tests/MainPageTest.java @@ -0,0 +1,70 @@ +package ru.oriflame.tests; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openqa.selenium.support.PageFactory; +import ru.oriflame.context.ChromeContext; +import ru.oriflame.context.Context; +import ru.oriflame.pages.MainPage; + +public class MainPageTest { + + private final static String APP_URL = "https://www.oriflame.ru/products/product?code=32418"; + private static Context context; + + @BeforeClass + public static void setup() { + context = new ChromeContext(); + context.start(); + } + + @AfterClass + public static void quit() { + context.close(); + } + + @Test + public void checkHeightMenu() { + context.getDriver().get(APP_URL); + MainPage mainPage = PageFactory.initElements(context.getDriver(), MainPage.class); + mainPage.faceClick(); + Assert.assertTrue(MainPage.assertHeightMenu()); + } + + @Test + public void checkProfileCap() { + context.getDriver().get(APP_URL); + MainPage mainPage = PageFactory.initElements(context.getDriver(), MainPage.class); + mainPage.registrClick(); + Assert.assertTrue(MainPage.assertRegister()); + } + + @Test + public void checkDown() { + context.getDriver().get(APP_URL); + MainPage mainPage = PageFactory.initElements(context.getDriver(), MainPage.class); + mainPage.mainClick(); + mainPage.podvalClick(); + Assert.assertTrue(MainPage.assertDown()); + } + + @Test + public void checkBasementLink() { + context.getDriver().get(APP_URL); + MainPage mainPage = PageFactory.initElements(context.getDriver(), MainPage.class); + mainPage.mainClick(); + mainPage.bannerClick(); + Assert.assertTrue(MainPage.assertBanner()); + } + + @Test + public void checkProduct() { + context.getDriver().get(APP_URL); + MainPage mainPage = PageFactory.initElements(context.getDriver(), MainPage.class); + mainPage.faceClick(); + mainPage.productClick(); + Assert.assertTrue(MainPage.assertProduct()); + } +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/tests/MultiMediaTest.java b/Rukavishnikova/src/test/java/ru/oriflame/tests/MultiMediaTest.java new file mode 100644 index 0000000..bb32610 --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/tests/MultiMediaTest.java @@ -0,0 +1,35 @@ +package ru.oriflame.tests; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openqa.selenium.support.PageFactory; +import ru.oriflame.context.ChromeContext; +import ru.oriflame.context.Context; +import ru.oriflame.pages.MultiMedia; + +public class MultiMediaTest { + + private final static String APP_URL = "http://investors.oriflame.com/"; + private static Context context; + + @BeforeClass + public static void setup() { + context = new ChromeContext(); + context.start(); + } + + @AfterClass + public static void quit() { + context.close(); + } + + @Test + public void checkVideoPlay() { + context.getDriver().get(APP_URL); + MultiMedia multiMedia = PageFactory.initElements(context.getDriver(), MultiMedia.class); + multiMedia.playVideoElement(); + Assert.assertTrue(multiMedia.assertVideoPlay()); + } +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/tests/SearchingTest.java b/Rukavishnikova/src/test/java/ru/oriflame/tests/SearchingTest.java new file mode 100644 index 0000000..473beb6 --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/tests/SearchingTest.java @@ -0,0 +1,48 @@ +package ru.oriflame.tests; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openqa.selenium.support.PageFactory; +import ru.oriflame.context.ChromeContext; +import ru.oriflame.context.Context; +import ru.oriflame.pages.Search; + +public class SearchingTest { + + private final static String APP_URL = "https://oriflame.ru/"; + private static Context context; + String search1 = "шампунь"; + String search2 = "123"; + + + @BeforeClass + public static void setup() { + context = new ChromeContext(); + context.start(); + } + + @AfterClass + public static void quit() { + context.close(); + } + + @Test + public void checkSearchingByKeyWords() { + context.getDriver().get(APP_URL); + Search search = PageFactory.initElements(context.getDriver(), Search.class); + search.inputSearchField(search1); + search.clickSearchingButton(); + Assert.assertTrue(search.checkSearch(search1)); + } + + @Test + public void checkSearchingByNumb() { + context.getDriver().get(APP_URL); + Search search = PageFactory.initElements(context.getDriver(), Search.class); + search.inputSearchField(search2); + search.clickSearchingButton(); + Assert.assertTrue(search.checkSearch(search2)); + } +} diff --git a/Rukavishnikova/src/test/java/ru/oriflame/tests/SortByTest.java b/Rukavishnikova/src/test/java/ru/oriflame/tests/SortByTest.java new file mode 100644 index 0000000..843ddfe --- /dev/null +++ b/Rukavishnikova/src/test/java/ru/oriflame/tests/SortByTest.java @@ -0,0 +1,46 @@ +package ru.oriflame.tests; + +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openqa.selenium.support.PageFactory; +import ru.oriflame.context.ChromeContext; +import ru.oriflame.context.Context; +import ru.oriflame.pages.SortBy; + +public class SortByTest { + + private final static String APP_URL = "https://www.oriflame.ru"; + private static Context context; + + @BeforeClass + public static void setup() { + context = new ChromeContext(); + context.start(); + } + + @AfterClass + public static void quit() { + context.close(); + } + + @Test + public void checkShowMenuSort() { + context.getDriver().get(APP_URL); + SortBy sortBy = PageFactory.initElements(context.getDriver(), SortBy.class); + sortBy.faceClick(); + sortBy.sortByClick(); + Assert.assertTrue(sortBy.assertShowMenuSort()); + } + + @Test + public void checkLinkBySort() { + context.getDriver().get(APP_URL); + SortBy sortBy = PageFactory.initElements(context.getDriver(), SortBy.class); + sortBy.faceClick(); + sortBy.sortByClick(); + sortBy.sortByPopularClick(); + Assert.assertTrue(sortBy.assertcheckLinkBySort()); + } +} diff --git a/src/test/java/context/Context.java b/src/test/java/context/Context.java index 928d5dd..e7dc2ea 100644 --- a/src/test/java/context/Context.java +++ b/src/test/java/context/Context.java @@ -1,4 +1,4 @@ -package context; +package ru.oriflame.context; import org.openqa.selenium.WebDriver; @@ -7,6 +7,7 @@ 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) { @@ -18,8 +19,8 @@ public abstract class Context { public void start() { System.setProperty(getDriverType(), getDriverExecutablePath()); createDriver(); - // это плохая инструкция для автотестов, т.к. лучше задавать для конкретного элемента или кейса driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); + driver.manage().window().maximize(); } public void close() {