diff --git a/Skalkin/src/test/java/ActorPageTest.java b/Skalkin/src/test/java/ActorPageTest.java new file mode 100644 index 0000000..924a2b9 --- /dev/null +++ b/Skalkin/src/test/java/ActorPageTest.java @@ -0,0 +1,17 @@ +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.support.PageFactory; +import page.ActorPage; +import page.MoviePage; + +public class ActorPageTest extends TemplateMethod { + @Override + protected void testPart() { + context.getDriver().get(APP_URL_ACTOR);//Открыта страница фильма + + ActorPage pageActor = PageFactory.initElements(context.getDriver(), ActorPage.class);//Выбрать пункт меню + pageActor.clickInfo(); + + MoviePage pageMovie = PageFactory.initElements(context.getDriver(), MoviePage.class); + Assertions.assertTrue(pageMovie.isMoviePagePresent());//Корректно отображена выбранная страница + } +} diff --git a/Skalkin/src/test/java/AfishaPageTest.java b/Skalkin/src/test/java/AfishaPageTest.java new file mode 100644 index 0000000..593dbf2 --- /dev/null +++ b/Skalkin/src/test/java/AfishaPageTest.java @@ -0,0 +1,17 @@ +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.support.PageFactory; +import page.AfishaPage; +import page.MainPage; + +public class AfishaPageTest extends TemplateMethod { + @Override + protected void testPart() { + context.getDriver().get(APP_URL);//Открыта любая страница сайта, кроме специальных + + MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class); + page.clickSubMenu(); + + AfishaPage pageAfisha = PageFactory.initElements(context.getDriver(), AfishaPage.class); + Assertions.assertTrue(pageAfisha.isTopViewElementPresent());//Корректно отображена выбранная страница + } +} diff --git a/Skalkin/src/test/java/AutorizationTests.java b/Skalkin/src/test/java/AutorizationTests.java index 8d59658..d7a87c0 100644 --- a/Skalkin/src/test/java/AutorizationTests.java +++ b/Skalkin/src/test/java/AutorizationTests.java @@ -9,6 +9,7 @@ import org.openqa.selenium.support.PageFactory; import page.*; public class AutorizationTests { + private final static String APP_URL = "https://www.kinopoisk.ru/"; private final static String APP_URL_MOVIE = "https://www.kinopoisk.ru/film/mstiteli-voyna-beskonechnosti-2018-843649/"; diff --git a/Skalkin/src/test/java/MainPageTest.java b/Skalkin/src/test/java/MainPageTest.java new file mode 100644 index 0000000..407f0b6 --- /dev/null +++ b/Skalkin/src/test/java/MainPageTest.java @@ -0,0 +1,16 @@ +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.support.PageFactory; +import page.MainPage; + +public class MainPageTest extends TemplateMethod { + + @Override + protected void testPart() { + context.getDriver().get(APP_URL);//Открыта любая страница сайта, кроме специальных + + MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню + page.clickLogo(); + + Assertions.assertTrue(page.isMainPagePresent());//Корректно отображена выбранная страница + } +} diff --git a/Skalkin/src/test/java/MoviePageTest.java b/Skalkin/src/test/java/MoviePageTest.java new file mode 100644 index 0000000..5b1ff17 --- /dev/null +++ b/Skalkin/src/test/java/MoviePageTest.java @@ -0,0 +1,17 @@ +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.support.PageFactory; +import page.ActorPage; +import page.MoviePage; + +public class MoviePageTest extends TemplateMethod { + @Override + protected void testPart() { + context.getDriver().get(APP_URL_MOVIE);//Открыта страница фильма + + MoviePage pageMovie = PageFactory.initElements(context.getDriver(), MoviePage.class);//Выбрать пункт меню + pageMovie.clickInfo(); + + ActorPage pageActor = PageFactory.initElements(context.getDriver(), ActorPage.class); + Assertions.assertTrue(pageActor.isActorPagePresent());//Корректно отображена выбранная страница + } +} diff --git a/Skalkin/src/test/java/NavigationTests.java b/Skalkin/src/test/java/NavigationTests.java index a4d2710..493654e 100644 --- a/Skalkin/src/test/java/NavigationTests.java +++ b/Skalkin/src/test/java/NavigationTests.java @@ -8,10 +8,12 @@ import org.openqa.selenium.Dimension; import org.openqa.selenium.support.PageFactory; import page.*; -public class NavigationTests { +public class NavigationTests{ + + private final static String APP_URL = "https://www.kinopoisk.ru/"; - private final static String APP_URL_MOVIE = "https://www.kinopoisk.ru/film/koma-2018-933208/"; - private final static String APP_URL_ACTOR = "https://www.kinopoisk.ru/name/1189311/"; + private final static String APP_URL_MOVIE = "https://www.kinopoisk.ru/film/mstiteli-voyna-beskonechnosti-2018-843649/"; + protected final static String APP_URL_ACTOR = "https://www.kinopoisk.ru/name/1189311/"; private static Context context; @@ -71,7 +73,7 @@ public class NavigationTests { } @Test - public void testDownMenu() { + public void testDownMen() { context.getDriver().get(APP_URL);//Открыта страница фильма MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню @@ -121,4 +123,5 @@ public class NavigationTests { pageVk.closeWindow(); pageVk.switchToOldWindow(); } + } diff --git a/Skalkin/src/test/java/SearchPageTest.java b/Skalkin/src/test/java/SearchPageTest.java new file mode 100644 index 0000000..ab945ba --- /dev/null +++ b/Skalkin/src/test/java/SearchPageTest.java @@ -0,0 +1,21 @@ +import org.junit.jupiter.api.Assertions; +import org.openqa.selenium.support.PageFactory; +import page.search.SearchInTextPage; +import page.search.SearchInTextResultPage; + +public class SearchPageTest extends TemplateMethod { + + @Override + protected void testPart() { + context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных + + SearchInTextPage page = PageFactory.initElements(context.getDriver(), SearchInTextPage.class);//Выбрать пункт меню + page.insertNameSearch("Веном"); + page.enterSearch(); + + SearchInTextResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchInTextResultPage.class);//Корректно отображена выбранная страница + String str = pageResult.getNewsElementToString(); + + Assertions.assertTrue(pageResult.isListElementPresent("Веном")); + } +} diff --git a/Skalkin/src/test/java/SearchTests.java b/Skalkin/src/test/java/SearchTests.java index bfd291e..8613b82 100644 --- a/Skalkin/src/test/java/SearchTests.java +++ b/Skalkin/src/test/java/SearchTests.java @@ -9,9 +9,12 @@ import org.openqa.selenium.support.PageFactory; import page.*; import page.search.*; -public class SearchTests { +public class SearchTests { + private final static String APP_URL = "https://www.kinopoisk.ru/"; - private final static String APP_URL_SEARCH = "https://www.kinopoisk.ru/s/"; + private final static String APP_URL_MOVIE = "https://www.kinopoisk.ru/film/mstiteli-voyna-beskonechnosti-2018-843649/"; + protected final static String APP_URL_ACTOR = "https://www.kinopoisk.ru/name/1189311/"; + protected final static String APP_URL_SEARCH = "https://www.kinopoisk.ru/s/"; private static Context context; @@ -24,7 +27,7 @@ public class SearchTests { @AfterAll public static void quit() { - //context.close(); + context.close(); } @Test @@ -54,19 +57,17 @@ public class SearchTests { } @Test - public void testSearchByCreators() throws InterruptedException { + public void testSearchInText() { context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных - SearchByCreatorsPage page = PageFactory.initElements(context.getDriver(), SearchByCreatorsPage.class);//Выбрать пункт меню - page.insertNameSearch("Безруков"); - Thread.sleep(2500); - page.clickDown(); - page.clickEnter(); - Thread.sleep(1000); + SearchInTextPage page = PageFactory.initElements(context.getDriver(), SearchInTextPage.class);//Выбрать пункт меню + page.insertNameSearch("Веном"); page.enterSearch(); - SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница - Assertions.assertTrue(pageResult.isBrigadaFromResultCreatorsPresent()); + SearchInTextResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchInTextResultPage.class);//Корректно отображена выбранная страница + String str = pageResult.getNewsElementToString(); + + Assertions.assertTrue(pageResult.isListElementPresent("Веном")); } @Test @@ -81,18 +82,21 @@ public class SearchTests { Assertions.assertTrue(pageResult.isBezrukovFromResultElementPresent()); } + @Test - public void testSearchInText() { + public void testSearchByCreators() throws InterruptedException { context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных - SearchInTextPage page = PageFactory.initElements(context.getDriver(), SearchInTextPage.class);//Выбрать пункт меню - page.insertNameSearch("Веном"); + SearchByCreatorsPage page = PageFactory.initElements(context.getDriver(), SearchByCreatorsPage.class);//Выбрать пункт меню + page.insertNameSearch("Безруков"); + Thread.sleep(2500); + page.clickDown(); + page.clickEnter(); + Thread.sleep(1000); page.enterSearch(); - SearchInTextResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchInTextResultPage.class);//Корректно отображена выбранная страница - String str = pageResult.getNewsElementToString(); - - Assertions.assertTrue(pageResult.isListElementPresent("Веном")); + SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница + Assertions.assertTrue(pageResult.isBrigadaFromResultCreatorsPresent()); } @Test diff --git a/Skalkin/src/test/java/TemplateMethod.java b/Skalkin/src/test/java/TemplateMethod.java new file mode 100644 index 0000000..6d0116a --- /dev/null +++ b/Skalkin/src/test/java/TemplateMethod.java @@ -0,0 +1,60 @@ +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.AfishaPage; +import page.MainPage; +import page.RandomSearchPage; + +public abstract class TemplateMethod { + protected final static String APP_URL = "https://www.kinopoisk.ru/"; + protected final static String APP_URL_MOVIE = "https://www.kinopoisk.ru/film/koma-2018-933208/"; + protected final static String APP_URL_ACTOR = "https://www.kinopoisk.ru/name/1189311/"; + protected final static String APP_URL_SEARCH = "https://www.kinopoisk.ru/s/"; + + protected static Context context; + + @BeforeAll + public final static void setup() { + context = new ChromeContext(); + context.start(); + context.getDriver().manage().window().setSize(new Dimension(1600, 900)); + } + + public final void testHeader() { + context.getDriver().get(APP_URL);//Открыта любая страница сайта, кроме специальных + + MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class); + page.clickSubMenu(); + + AfishaPage pageAfisha = PageFactory.initElements(context.getDriver(), AfishaPage.class); + Assertions.assertTrue(pageAfisha.isTopViewElementPresent());//Корректно отображена выбранная страница + } + + public final void testDownMenu() { + context.getDriver().get(APP_URL);//Открыта страница фильма + + MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню + page.clickDownMenu(); + + Assertions.assertTrue(page.isMainPagePresent());//Корректно отображена выбранная страница + } + + @Test + public final void templateTest() { + testHeader(); + testPart(); + testDownMenu(); + } + + protected abstract void testPart(); + + @AfterAll + public final static void quit() { + context.close(); + } +} diff --git a/Skalkin/src/test/java/page/MainPage.java b/Skalkin/src/test/java/page/MainPage.java index bd23de2..3ba1a83 100644 --- a/Skalkin/src/test/java/page/MainPage.java +++ b/Skalkin/src/test/java/page/MainPage.java @@ -24,7 +24,7 @@ public class MainPage { @FindBy(css = ".header-fresh-partial-component__navigation-item") private WebElement mainElement; - @FindBy(css = "#partial_component__footer a") + @FindBy(css = ".link.footer-partial-component__bottom-info-link") private WebElement downMenuElement; @FindBy(css = "#rigth_box_weekend_rus dd a")