Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
310eca5e80 | |||
76e1d98652 | |||
224452000a | |||
a46383c4fb | |||
315eba8c26 | |||
96d2bb769c | |||
32cd4d5f6d | |||
f65a77694a | |||
5d0024dc22 | |||
673fb05473 |
156
Skalkin/.gitignore
vendored
Normal file
156
Skalkin/.gitignore
vendored
Normal file
@ -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/
|
2
Skalkin/README.md
Normal file
2
Skalkin/README.md
Normal file
@ -0,0 +1,2 @@
|
||||
Selenium WebDriver example project
|
||||
|
49
Skalkin/pom.xml
Normal file
49
Skalkin/pom.xml
Normal file
@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>tis-2017</groupId>
|
||||
<artifactId>tis-2017</artifactId>
|
||||
<version>1.0</version>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.source>1.8</maven.compiler.source>
|
||||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
|
||||
<dependency>
|
||||
<groupId>org.seleniumhq.selenium</groupId>
|
||||
<artifactId>selenium-java</artifactId>
|
||||
<version>3.6.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<version>5.1.0-RC1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<index>true</index>
|
||||
<manifest>
|
||||
<addClasspath>true</addClasspath>
|
||||
<classpathPrefix>lib/</classpathPrefix>
|
||||
<mainClass>ru.ulstu.tis.Main</mainClass>
|
||||
</manifest>
|
||||
<manifestEntries>
|
||||
<Class-Path>lib/</Class-Path>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
8
Skalkin/src/main/java/ru/ulstu/tis/Main.java
Normal file
8
Skalkin/src/main/java/ru/ulstu/tis/Main.java
Normal file
@ -0,0 +1,8 @@
|
||||
package ru.ulstu.tis;
|
||||
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println("666");
|
||||
}
|
||||
}
|
BIN
Skalkin/src/main/resources/drivers/chromedriver
Normal file
BIN
Skalkin/src/main/resources/drivers/chromedriver
Normal file
Binary file not shown.
BIN
Skalkin/src/main/resources/drivers/chromedriver.exe
Normal file
BIN
Skalkin/src/main/resources/drivers/chromedriver.exe
Normal file
Binary file not shown.
BIN
Skalkin/src/main/resources/drivers/geckodriver
Normal file
BIN
Skalkin/src/main/resources/drivers/geckodriver
Normal file
Binary file not shown.
BIN
Skalkin/src/main/resources/drivers/geckodriver.exe
Normal file
BIN
Skalkin/src/main/resources/drivers/geckodriver.exe
Normal file
Binary file not shown.
17
Skalkin/src/test/java/ActorPageTest.java
Normal file
17
Skalkin/src/test/java/ActorPageTest.java
Normal file
@ -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());//Корректно отображена выбранная страница
|
||||
}
|
||||
}
|
17
Skalkin/src/test/java/AfishaPageTest.java
Normal file
17
Skalkin/src/test/java/AfishaPageTest.java
Normal file
@ -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());//Корректно отображена выбранная страница
|
||||
}
|
||||
}
|
77
Skalkin/src/test/java/AutorizationTests.java
Normal file
77
Skalkin/src/test/java/AutorizationTests.java
Normal file
@ -0,0 +1,77 @@
|
||||
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.*;
|
||||
|
||||
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/";
|
||||
|
||||
private static Context context;
|
||||
|
||||
@BeforeAll
|
||||
public static void setup() {
|
||||
context = new ChromeContext();
|
||||
context.start();
|
||||
context.getDriver().manage().window().setSize(new Dimension(1600, 900));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void quit() {
|
||||
context.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoginSocial(){
|
||||
context.getDriver().get(APP_URL);//Открыта страница фильма
|
||||
|
||||
LoginPage page = PageFactory.initElements(context.getDriver(), LoginPage.class);//Выбрать пункт меню
|
||||
page.clickButtonLogin();
|
||||
page.isFrameLogin();
|
||||
page.frameLogin();
|
||||
page.isButtonVK();
|
||||
page.clickButtonVK();
|
||||
page.frameDefault();
|
||||
|
||||
VKPage pageVk = PageFactory.initElements(context.getDriver(), VKPage.class);
|
||||
pageVk.setOldWindow();
|
||||
pageVk.switchToSocial();
|
||||
Assertions.assertTrue(pageVk.isVkPagePresent());
|
||||
pageVk.closeWindow();
|
||||
pageVk.switchToOldWindow();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoginEmail() throws InterruptedException {
|
||||
context.getDriver().get(APP_URL);//Открыта страница фильма
|
||||
|
||||
LoginPage page = PageFactory.initElements(context.getDriver(), LoginPage.class);//Выбрать пункт меню
|
||||
page.clickButtonLogin();
|
||||
page.isFrameLogin();
|
||||
page.frameLogin();
|
||||
page.insertEmail("sefyijupsi@tutye.com");
|
||||
page.insertPassword("q1w2e3r4t5y6");
|
||||
Thread.sleep(500);
|
||||
page.insertSignInEnter();
|
||||
page.frameDefault();
|
||||
|
||||
Assertions.assertTrue(page.isAutorization());
|
||||
context.getDriver().get("https://www.kinopoisk.ru/logout/");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLike(){
|
||||
context.getDriver().get(APP_URL_MOVIE);//Открыта страница фильма
|
||||
|
||||
MoviePage page = PageFactory.initElements(context.getDriver(), MoviePage.class);//Выбрать пункт меню
|
||||
page.clickLike();
|
||||
|
||||
Assertions.assertTrue(page.isErrorLike());
|
||||
}
|
||||
}
|
16
Skalkin/src/test/java/MainPageTest.java
Normal file
16
Skalkin/src/test/java/MainPageTest.java
Normal file
@ -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());//Корректно отображена выбранная страница
|
||||
}
|
||||
}
|
17
Skalkin/src/test/java/MoviePageTest.java
Normal file
17
Skalkin/src/test/java/MoviePageTest.java
Normal file
@ -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());//Корректно отображена выбранная страница
|
||||
}
|
||||
}
|
127
Skalkin/src/test/java/NavigationTests.java
Normal file
127
Skalkin/src/test/java/NavigationTests.java
Normal file
@ -0,0 +1,127 @@
|
||||
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.*;
|
||||
|
||||
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/mstiteli-voyna-beskonechnosti-2018-843649/";
|
||||
protected final static String APP_URL_ACTOR = "https://www.kinopoisk.ru/name/1189311/";
|
||||
|
||||
private static Context context;
|
||||
|
||||
@BeforeAll
|
||||
public static void setup() {
|
||||
context = new ChromeContext();
|
||||
context.start();
|
||||
context.getDriver().manage().window().setSize(new Dimension(1600, 900));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void quit() {
|
||||
context.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSubPageTop() {
|
||||
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());//Корректно отображена выбранная страница
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLogo() {
|
||||
context.getDriver().get(APP_URL);//Открыта любая страница сайта, кроме специальных
|
||||
|
||||
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню
|
||||
page.clickLogo();
|
||||
|
||||
Assertions.assertTrue(page.isMainPagePresent());//Корректно отображена выбранная страница
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInfoMovie() {
|
||||
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());//Корректно отображена выбранная страница
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInfoActor() {
|
||||
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());//Корректно отображена выбранная страница
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDownMen() {
|
||||
context.getDriver().get(APP_URL);//Открыта страница фильма
|
||||
|
||||
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню
|
||||
page.clickDownMenu();
|
||||
|
||||
RandomSearchPage pageSearch = PageFactory.initElements(context.getDriver(), RandomSearchPage.class);
|
||||
Assertions.assertTrue(pageSearch.isRandomMovieFormPresent());//Корректно отображена выбранная страница
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRightMenu() {
|
||||
context.getDriver().get(APP_URL);//Открыта страница фильма
|
||||
|
||||
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню
|
||||
page.clickRightMenu();
|
||||
|
||||
MoviePage pageMovie = PageFactory.initElements(context.getDriver(), MoviePage.class);
|
||||
Assertions.assertTrue(pageMovie.isMoviePagePresent());//Корректно отображена выбранная страница
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSocialMovieMenu() {
|
||||
context.getDriver().get(APP_URL_MOVIE);//Открыта страница фильма
|
||||
|
||||
MoviePage pageMovie = PageFactory.initElements(context.getDriver(), MoviePage.class);//Выбрать пункт меню
|
||||
pageMovie.clickSocial();
|
||||
|
||||
VKPage pageVk = PageFactory.initElements(context.getDriver(), VKPage.class);
|
||||
pageVk.setOldWindow();
|
||||
pageVk.switchToSocial();
|
||||
Assertions.assertTrue(pageVk.isVkPagePresent());
|
||||
pageVk.closeWindow();
|
||||
pageVk.switchToOldWindow();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSocialActorMenu() {
|
||||
context.getDriver().get(APP_URL_ACTOR);//Открыта страница фильма
|
||||
|
||||
ActorPage pageActor = PageFactory.initElements(context.getDriver(), ActorPage.class);//Выбрать пункт меню
|
||||
pageActor.clickSocial();
|
||||
|
||||
VKPage pageVk = PageFactory.initElements(context.getDriver(), VKPage.class);
|
||||
pageVk.setOldWindow();
|
||||
pageVk.switchToSocial();
|
||||
Assertions.assertTrue(pageVk.isVkPagePresent());
|
||||
pageVk.closeWindow();
|
||||
pageVk.switchToOldWindow();
|
||||
}
|
||||
|
||||
}
|
21
Skalkin/src/test/java/SearchPageTest.java
Normal file
21
Skalkin/src/test/java/SearchPageTest.java
Normal file
@ -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("Веном"));
|
||||
}
|
||||
}
|
157
Skalkin/src/test/java/SearchTests.java
Normal file
157
Skalkin/src/test/java/SearchTests.java
Normal file
@ -0,0 +1,157 @@
|
||||
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.*;
|
||||
import page.search.*;
|
||||
|
||||
public class SearchTests {
|
||||
|
||||
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/";
|
||||
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;
|
||||
|
||||
@BeforeAll
|
||||
public static void setup() {
|
||||
context = new ChromeContext();
|
||||
context.start();
|
||||
context.getDriver().manage().window().setSize(new Dimension(1600, 900));
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void quit() {
|
||||
context.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleSearch() {
|
||||
context.getDriver().get(APP_URL);//Открыта любая страница сайта, кроме специальных
|
||||
|
||||
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню
|
||||
page.insertSearch("Кома");
|
||||
page.enterSearch();
|
||||
|
||||
SearchExtendedResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
|
||||
Assertions.assertTrue(pageTo.isKomaFromResultElementPresent());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExtendedSearch() {
|
||||
context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных
|
||||
|
||||
SearchExtendedPage page = PageFactory.initElements(context.getDriver(), SearchExtendedPage.class);//Выбрать пункт меню
|
||||
page.insertNameSearch("Кома");
|
||||
page.openCountry();
|
||||
page.clickCountry();
|
||||
page.enterSearch();
|
||||
|
||||
SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
|
||||
Assertions.assertTrue(pageResult.isKomaFromResultElementPresent());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSearchInText() {
|
||||
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("Веном"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSearchByPeople() {
|
||||
context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных
|
||||
|
||||
SearchByPeoplePage page = PageFactory.initElements(context.getDriver(), SearchByPeoplePage.class);//Выбрать пункт меню
|
||||
page.insertNameSearch("Безруков");
|
||||
page.enterSearch();
|
||||
|
||||
SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
|
||||
Assertions.assertTrue(pageResult.isBezrukovFromResultElementPresent());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testSearchByCreators() throws InterruptedException {
|
||||
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);
|
||||
page.enterSearch();
|
||||
|
||||
SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница
|
||||
Assertions.assertTrue(pageResult.isBrigadaFromResultCreatorsPresent());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSearchByUsers() {
|
||||
context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных
|
||||
|
||||
SearchByUsersPage page = PageFactory.initElements(context.getDriver(), SearchByUsersPage.class);//Выбрать пункт меню
|
||||
page.insertNameSearch("Антон");
|
||||
page.enterSearch();
|
||||
|
||||
SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
|
||||
Assertions.assertTrue(pageResult.isUsersResultElementPresent("Антон"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSearchByKeyword() {
|
||||
context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных
|
||||
|
||||
SearchByKeywordPage page = PageFactory.initElements(context.getDriver(), SearchByKeywordPage.class);//Выбрать пункт меню
|
||||
page.insertNameSearch("Война");
|
||||
page.enterSearch();
|
||||
|
||||
SearchByKeywordResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница
|
||||
Assertions.assertTrue(pageResult.isFirstResultElementPresent("Война"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSearchMovieByWord() throws InterruptedException {
|
||||
context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных
|
||||
|
||||
SearchMovieByWordPage page = PageFactory.initElements(context.getDriver(), SearchMovieByWordPage.class);//Выбрать пункт меню
|
||||
page.insertNameSearch("Магия");
|
||||
Thread.sleep(500);
|
||||
page.clickDown();
|
||||
Thread.sleep(500);
|
||||
page.clickDown();
|
||||
Thread.sleep(500);
|
||||
page.clickEnter();
|
||||
Thread.sleep(1000);
|
||||
page.enterSearch();
|
||||
|
||||
SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница
|
||||
Assertions.assertTrue(pageResult.isFirstResultByWordPresent());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSearchByStudio() throws InterruptedException {
|
||||
context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных
|
||||
|
||||
SearchByStudioPage page = PageFactory.initElements(context.getDriver(), SearchByStudioPage.class);//Выбрать пункт меню
|
||||
page.insertNameSearch("Disney");
|
||||
Thread.sleep(1000);
|
||||
page.enterSearch();
|
||||
|
||||
SearchByKeywordResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница
|
||||
Assertions.assertTrue(pageResult.isFirstResultElementPresent("Disney"));
|
||||
}
|
||||
}
|
60
Skalkin/src/test/java/TemplateMethod.java
Normal file
60
Skalkin/src/test/java/TemplateMethod.java
Normal file
@ -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();
|
||||
}
|
||||
}
|
25
Skalkin/src/test/java/context/ChromeContext.java
Normal file
25
Skalkin/src/test/java/context/ChromeContext.java
Normal file
@ -0,0 +1,25 @@
|
||||
package context;
|
||||
|
||||
import org.openqa.selenium.chrome.ChromeDriver;
|
||||
import org.openqa.selenium.firefox.FirefoxDriver;
|
||||
|
||||
public class ChromeContext extends Context {
|
||||
private final static String WINDOWS_DRIVER = "chromedriver.exe";
|
||||
private final static String LINUX_DRIVER = "chromedriver";
|
||||
private final static String DRIVER_TYPE = "webdriver.chrome.driver";
|
||||
|
||||
@Override
|
||||
protected void createDriver() {
|
||||
driver = new ChromeDriver();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getDriverExecutable(boolean isWindows) {
|
||||
return isWindows ? WINDOWS_DRIVER : LINUX_DRIVER;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getDriverType() {
|
||||
return DRIVER_TYPE;
|
||||
}
|
||||
}
|
43
Skalkin/src/test/java/context/Context.java
Normal file
43
Skalkin/src/test/java/context/Context.java
Normal file
@ -0,0 +1,43 @@
|
||||
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;
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
private boolean isWindows() {
|
||||
return System.getProperty("os.name").toLowerCase().contains("windows");
|
||||
}
|
||||
}
|
24
Skalkin/src/test/java/context/FirefoxContext.java
Normal file
24
Skalkin/src/test/java/context/FirefoxContext.java
Normal file
@ -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;
|
||||
}
|
||||
}
|
31
Skalkin/src/test/java/page/ActorPage.java
Normal file
31
Skalkin/src/test/java/page/ActorPage.java
Normal file
@ -0,0 +1,31 @@
|
||||
package page;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class ActorPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = "#BestFilmList a")
|
||||
private WebElement infoElement;
|
||||
|
||||
@FindBy(css = ".ya-share2__list a")
|
||||
private WebElement socialElement;
|
||||
|
||||
public ActorPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void clickInfo() {
|
||||
infoElement.click();
|
||||
}
|
||||
|
||||
public void clickSocial() {
|
||||
socialElement.click();
|
||||
}
|
||||
|
||||
public boolean isActorPagePresent() {
|
||||
return infoElement.isDisplayed();
|
||||
}
|
||||
}
|
23
Skalkin/src/test/java/page/AfishaPage.java
Normal file
23
Skalkin/src/test/java/page/AfishaPage.java
Normal file
@ -0,0 +1,23 @@
|
||||
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.interactions.Actions;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class AfishaPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".tableTopViewSeansMain")
|
||||
private WebElement topViewElement;
|
||||
|
||||
public AfishaPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public boolean isTopViewElementPresent() {
|
||||
return topViewElement.isDisplayed();
|
||||
}
|
||||
}
|
112
Skalkin/src/test/java/page/LoginPage.java
Normal file
112
Skalkin/src/test/java/page/LoginPage.java
Normal file
@ -0,0 +1,112 @@
|
||||
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.interactions.Actions;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class LoginPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".header-fresh-user-partial-component__login-button")
|
||||
private WebElement buttonLogin;
|
||||
|
||||
@FindBy(css = ".social-auth__item.social-auth__item_code_vk")
|
||||
private WebElement buttonVK;
|
||||
|
||||
@FindBy(css = ".header-fresh-user-partial-component__avatar")
|
||||
private WebElement elementAvatar;
|
||||
|
||||
@FindBy(name = "login")
|
||||
private WebElement elementEmail;
|
||||
|
||||
@FindBy(name = "password")
|
||||
private WebElement elementPassword;
|
||||
|
||||
@FindBy(css = ".link.link_secondary.auth__signup-link")
|
||||
private WebElement elementRegister;
|
||||
|
||||
@FindBy(css = ".kp2-authapi-iframe")
|
||||
private WebElement signInFrame;
|
||||
|
||||
@FindBy(xpath = "//a[@href='/logout/']")
|
||||
private WebElement buttonLogout;
|
||||
|
||||
public LoginPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void clickButtonLogin() {
|
||||
buttonLogin.click();
|
||||
}
|
||||
|
||||
public void clickButtonVK() {
|
||||
buttonVK.click();
|
||||
}
|
||||
|
||||
public void clickButtonLogout() {
|
||||
buttonLogout.click();
|
||||
}
|
||||
|
||||
public void insertEmail(String str) {
|
||||
elementEmail.sendKeys(str);
|
||||
}
|
||||
|
||||
public void insertPassword(String str) {
|
||||
elementPassword.sendKeys(str);
|
||||
}
|
||||
|
||||
public void insertSignInEnter() {
|
||||
elementPassword.sendKeys(Keys.ENTER);
|
||||
}
|
||||
|
||||
public void isButtonVK() {
|
||||
while(true){
|
||||
try{
|
||||
if(driver.findElement(By.cssSelector(".social-auth__item.social-auth__item_code_vk")).isDisplayed()){
|
||||
return;
|
||||
} else {
|
||||
Thread.sleep(500);
|
||||
}
|
||||
}catch(Exception ex){ }
|
||||
}
|
||||
}
|
||||
|
||||
public void isFrameLogin() {
|
||||
while(true){
|
||||
try{
|
||||
if(driver.findElement(By.name("kp2-authapi-iframe")).isDisplayed()){
|
||||
return;
|
||||
} else {
|
||||
Thread.sleep(500);
|
||||
}
|
||||
}catch(Exception ex){ }
|
||||
}
|
||||
}
|
||||
|
||||
public void isButtonLogin() {
|
||||
while(true){
|
||||
try{
|
||||
if(driver.findElement(By.name("kp2-authapi-iframe")).isDisplayed()){
|
||||
return;
|
||||
} else {
|
||||
Thread.sleep(500);
|
||||
}
|
||||
}catch(Exception ex){ }
|
||||
}
|
||||
}
|
||||
|
||||
public void frameDefault(){
|
||||
driver.switchTo().defaultContent();
|
||||
}
|
||||
|
||||
public void frameLogin(){
|
||||
driver.switchTo().frame(signInFrame);
|
||||
}
|
||||
|
||||
public boolean isAutorization() {
|
||||
return elementAvatar.isDisplayed();
|
||||
}
|
||||
}
|
72
Skalkin/src/test/java/page/MainPage.java
Normal file
72
Skalkin/src/test/java/page/MainPage.java
Normal file
@ -0,0 +1,72 @@
|
||||
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.interactions.Actions;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
import org.openqa.selenium.support.ui.ExpectedConditions;
|
||||
import org.openqa.selenium.support.ui.WebDriverWait;
|
||||
|
||||
import java.io.Console;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class MainPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".kp-logo-partial-component")
|
||||
private WebElement logoElement;
|
||||
|
||||
@FindBy(css = ".header-fresh-dropdown-partial-component__sidebar-link")
|
||||
private WebElement menuElement;
|
||||
|
||||
@FindBy(css = ".header-fresh-partial-component__navigation-item")
|
||||
private WebElement mainElement;
|
||||
|
||||
@FindBy(css = ".link.footer-partial-component__bottom-info-link")
|
||||
private WebElement downMenuElement;
|
||||
|
||||
@FindBy(css = "#rigth_box_weekend_rus dd a")
|
||||
private WebElement rightMenuElement;
|
||||
|
||||
@FindBy(css = ".header-fresh-search-partial-component__field")
|
||||
private WebElement searchElement;
|
||||
|
||||
@FindBy(id = "index_news")
|
||||
private WebElement newsBaners;
|
||||
|
||||
public MainPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void clickSubMenu() {
|
||||
Actions builder = new Actions(driver);
|
||||
builder.moveToElement(mainElement).perform();
|
||||
menuElement.sendKeys(Keys.RETURN);
|
||||
}
|
||||
|
||||
public void clickLogo() {
|
||||
logoElement.click();
|
||||
}
|
||||
|
||||
public void clickDownMenu() {
|
||||
downMenuElement.click();
|
||||
}
|
||||
|
||||
public void clickRightMenu() {
|
||||
rightMenuElement.click();
|
||||
}
|
||||
|
||||
public void insertSearch(String str) {
|
||||
searchElement.sendKeys(str);
|
||||
}
|
||||
|
||||
public void enterSearch() {
|
||||
searchElement.sendKeys(Keys.ENTER);
|
||||
}
|
||||
|
||||
public boolean isMainPagePresent() {
|
||||
return newsBaners.isDisplayed();
|
||||
}
|
||||
}
|
45
Skalkin/src/test/java/page/MoviePage.java
Normal file
45
Skalkin/src/test/java/page/MoviePage.java
Normal file
@ -0,0 +1,45 @@
|
||||
package page;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class MoviePage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = "#actorList a")
|
||||
private WebElement infoElement;
|
||||
|
||||
@FindBy(css = ".ya-share2__list a")
|
||||
private WebElement socialElement;
|
||||
|
||||
@FindBy(id = "btn_fav_film")
|
||||
private WebElement buttonLike;
|
||||
|
||||
@FindBy(id = "ui_notice_container")
|
||||
private WebElement infoError;
|
||||
|
||||
public MoviePage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void clickInfo() {
|
||||
infoElement.click();
|
||||
}
|
||||
|
||||
public void clickSocial() {
|
||||
socialElement.click();
|
||||
}
|
||||
|
||||
public void clickLike() {
|
||||
buttonLike.click();
|
||||
}
|
||||
|
||||
public boolean isErrorLike() {
|
||||
return infoError.isDisplayed();
|
||||
}
|
||||
|
||||
public boolean isMoviePagePresent() {
|
||||
return infoElement.isDisplayed();
|
||||
}
|
||||
}
|
20
Skalkin/src/test/java/page/RandomSearchPage.java
Normal file
20
Skalkin/src/test/java/page/RandomSearchPage.java
Normal file
@ -0,0 +1,20 @@
|
||||
package page;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class RandomSearchPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".randomMovie")
|
||||
private WebElement randomMovieForm;
|
||||
|
||||
public RandomSearchPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public boolean isRandomMovieFormPresent() {
|
||||
return randomMovieForm.isDisplayed();
|
||||
}
|
||||
}
|
40
Skalkin/src/test/java/page/VKPage.java
Normal file
40
Skalkin/src/test/java/page/VKPage.java
Normal file
@ -0,0 +1,40 @@
|
||||
package page;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class VKPage {
|
||||
WebDriver driver;
|
||||
private String oldWindow;
|
||||
|
||||
@FindBy(id = "login_submit")
|
||||
private WebElement formLoginVk;
|
||||
|
||||
public VKPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void switchToSocial(){
|
||||
for (String winHandle : driver.getWindowHandles()) {
|
||||
driver.switchTo().window(winHandle);
|
||||
}
|
||||
}
|
||||
|
||||
public void setOldWindow() {
|
||||
this.oldWindow = driver.getWindowHandle();
|
||||
}
|
||||
|
||||
public void switchToOldWindow(){
|
||||
if(oldWindow != "")
|
||||
driver.switchTo().window(oldWindow);
|
||||
}
|
||||
|
||||
public void closeWindow() {
|
||||
driver.close();
|
||||
}
|
||||
|
||||
public boolean isVkPagePresent() {
|
||||
return formLoginVk.isDisplayed();
|
||||
}
|
||||
}
|
42
Skalkin/src/test/java/page/search/SearchByCreatorsPage.java
Normal file
42
Skalkin/src/test/java/page/search/SearchByCreatorsPage.java
Normal file
@ -0,0 +1,42 @@
|
||||
package page.search;
|
||||
|
||||
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 SearchByCreatorsPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(id = "btn_search_6")
|
||||
private WebElement buttonElement;
|
||||
|
||||
@FindBy(id = "cr_search_field_1")
|
||||
private WebElement nameElement;
|
||||
|
||||
public SearchByCreatorsPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void insertNameSearch(String str) {
|
||||
nameElement.sendKeys(str);
|
||||
}
|
||||
|
||||
public void clickDown() {
|
||||
nameElement.sendKeys(Keys.ARROW_DOWN);
|
||||
}
|
||||
|
||||
public void clickEnter() {
|
||||
nameElement.sendKeys(Keys.ENTER);
|
||||
}
|
||||
|
||||
public void enterSearch() {
|
||||
buttonElement.click();
|
||||
}
|
||||
|
||||
// public boolean isUserPresent() {
|
||||
// return topBaners.isDisplayed();
|
||||
// }
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class SearchByCreatorsResultPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".search_adv")
|
||||
private WebElement resultCreatorsElement;
|
||||
|
||||
@FindBy(xpath = "//a[@href='/film/brigada-2002-77039/sr/1/']")
|
||||
private WebElement brigadaFromResultCreatorsElement;
|
||||
|
||||
@FindBy(xpath = "//a[@href='/film/garri-potter-i-filosofskiy-kamen-2001-689/sr/1/']")
|
||||
private WebElement firstResultByWordElement;
|
||||
|
||||
public SearchByCreatorsResultPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public boolean isFirstResultByWordPresent() {
|
||||
return firstResultByWordElement.isDisplayed();
|
||||
}
|
||||
|
||||
public boolean isBrigadaFromResultCreatorsPresent() {
|
||||
return brigadaFromResultCreatorsElement.isDisplayed();
|
||||
}
|
||||
|
||||
public boolean isResultCreatorsPresent() {
|
||||
return resultCreatorsElement.isDisplayed();
|
||||
}
|
||||
}
|
28
Skalkin/src/test/java/page/search/SearchByKeywordPage.java
Normal file
28
Skalkin/src/test/java/page/search/SearchByKeywordPage.java
Normal file
@ -0,0 +1,28 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class SearchByKeywordPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = "#keyword_search .submit.nice_button")
|
||||
private WebElement buttonElement;
|
||||
|
||||
@FindBy(id = "find_keyword")
|
||||
private WebElement nameElement;
|
||||
|
||||
public SearchByKeywordPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void insertNameSearch(String str) {
|
||||
nameElement.sendKeys(str);
|
||||
}
|
||||
|
||||
public void enterSearch() {
|
||||
buttonElement.click();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SearchByKeywordResultPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".news")
|
||||
private WebElement newsElement;
|
||||
|
||||
@FindBy(xpath = "//*[@id=\'block_left_pad\']/div/table/tbody/tr/td/table[2]/tbody/tr/td/table[1]/tbody/tr")
|
||||
private List<WebElement> listResultElement;
|
||||
|
||||
public SearchByKeywordResultPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public boolean isFirstResultElementPresent(String text) { //
|
||||
boolean matched = true;
|
||||
|
||||
for (int i = 0; i < listResultElement.size()-1; i++) {
|
||||
String str = listResultElement.get(i).getText();
|
||||
if((i-2) % 3 == 0 && !str.toLowerCase().contains(text.toLowerCase())){
|
||||
matched = false;
|
||||
//break;
|
||||
}
|
||||
}
|
||||
return matched;
|
||||
}
|
||||
|
||||
public boolean isNewsElementPresent() {
|
||||
return newsElement.isDisplayed();
|
||||
}
|
||||
}
|
27
Skalkin/src/test/java/page/search/SearchByPeoplePage.java
Normal file
27
Skalkin/src/test/java/page/search/SearchByPeoplePage.java
Normal file
@ -0,0 +1,27 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class SearchByPeoplePage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".el_8.submit.nice_button")
|
||||
private WebElement buttonElement;
|
||||
|
||||
@FindBy(id = "find_people")
|
||||
private WebElement nameElement;
|
||||
|
||||
public SearchByPeoplePage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void insertNameSearch(String str) {
|
||||
nameElement.sendKeys(str);
|
||||
}
|
||||
|
||||
public void enterSearch() {
|
||||
buttonElement.click();
|
||||
}
|
||||
}
|
27
Skalkin/src/test/java/page/search/SearchByStudioPage.java
Normal file
27
Skalkin/src/test/java/page/search/SearchByStudioPage.java
Normal file
@ -0,0 +1,27 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class SearchByStudioPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = "#studio_search .submit.nice_button")
|
||||
private WebElement buttonElement;
|
||||
|
||||
@FindBy(id = "find_studio")
|
||||
private WebElement nameElement;
|
||||
|
||||
public SearchByStudioPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void insertNameSearch(String str) {
|
||||
nameElement.sendKeys(str);
|
||||
}
|
||||
|
||||
public void enterSearch() {
|
||||
buttonElement.click();
|
||||
}
|
||||
}
|
27
Skalkin/src/test/java/page/search/SearchByUsersPage.java
Normal file
27
Skalkin/src/test/java/page/search/SearchByUsersPage.java
Normal file
@ -0,0 +1,27 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class SearchByUsersPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".el_9.submit.nice_button")
|
||||
private WebElement buttonElement;
|
||||
|
||||
@FindBy(id = "name")
|
||||
private WebElement nameElement;
|
||||
|
||||
public SearchByUsersPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void insertNameSearch(String str) {
|
||||
nameElement.sendKeys(str);
|
||||
}
|
||||
|
||||
public void enterSearch() {
|
||||
buttonElement.click();
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class SearchByUsersResultPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(id = "profileInfoWrap")
|
||||
private WebElement element;
|
||||
|
||||
public SearchByUsersResultPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public boolean isUserPresent() {
|
||||
return element.isDisplayed();
|
||||
}
|
||||
}
|
43
Skalkin/src/test/java/page/search/SearchExtendedPage.java
Normal file
43
Skalkin/src/test/java/page/search/SearchExtendedPage.java
Normal file
@ -0,0 +1,43 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SearchExtendedPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".el_18.submit.nice_button")
|
||||
private WebElement buttonElement;
|
||||
|
||||
@FindBy(id = "find_film")
|
||||
private WebElement nameElement;
|
||||
|
||||
@FindBy(id = "country")
|
||||
private WebElement countryElement;
|
||||
|
||||
@FindBy(css = "#country option")
|
||||
private List<WebElement> countryToElement;
|
||||
|
||||
public SearchExtendedPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void insertNameSearch(String str) {
|
||||
nameElement.sendKeys(str);
|
||||
}
|
||||
|
||||
public void openCountry() {
|
||||
countryElement.click();
|
||||
}
|
||||
|
||||
public void clickCountry() {
|
||||
countryToElement.get(1).click();
|
||||
}
|
||||
|
||||
public void enterSearch() {
|
||||
buttonElement.click();
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SearchExtendedResultPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".search_results_top")
|
||||
private WebElement resultTopElement;
|
||||
|
||||
@FindBy(xpath = "//a[@href='/film/koma-2018-933208/sr/1/']")
|
||||
private WebElement komaFromResultElement;
|
||||
|
||||
@FindBy(xpath = "//a[@href='/name/224620/sr/1/']")
|
||||
private WebElement bezrukovFromResultElement;
|
||||
|
||||
@FindBy(css = ".element")
|
||||
private List<WebElement> usersListResultElement;
|
||||
|
||||
|
||||
|
||||
public SearchExtendedResultPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public boolean isUsersResultElementPresent(String text) {
|
||||
boolean matched = true;
|
||||
|
||||
for (int i = 0; i < usersListResultElement.size(); i++) {
|
||||
if(!usersListResultElement.get(i).getText().toLowerCase().contains(text.toLowerCase())){
|
||||
matched = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return matched;
|
||||
}
|
||||
|
||||
public boolean isBezrukovFromResultElementPresent() {
|
||||
return bezrukovFromResultElement.isDisplayed();
|
||||
}
|
||||
|
||||
public boolean isKomaFromResultElementPresent() {
|
||||
return komaFromResultElement.isDisplayed();
|
||||
}
|
||||
|
||||
public boolean isResultTopElementPresent() {
|
||||
return resultTopElement.isDisplayed();
|
||||
}
|
||||
}
|
27
Skalkin/src/test/java/page/search/SearchInTextPage.java
Normal file
27
Skalkin/src/test/java/page/search/SearchInTextPage.java
Normal file
@ -0,0 +1,27 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class SearchInTextPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".el_12.submit.nice_button")
|
||||
private WebElement buttonElement;
|
||||
|
||||
@FindBy(id = "txt_search_input")
|
||||
private WebElement nameElement;
|
||||
|
||||
public SearchInTextPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void insertNameSearch(String str) {
|
||||
nameElement.sendKeys(str);
|
||||
}
|
||||
|
||||
public void enterSearch() {
|
||||
buttonElement.click();
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
|
||||
public class SearchInTextResultPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(css = ".textorangebig")
|
||||
private WebElement headerElement;
|
||||
|
||||
@FindBy(css = ".news")
|
||||
private WebElement newsElement; //
|
||||
|
||||
@FindBy(xpath = "//*[@id='block_left_pad']/div/table/tbody/tr/td/table[2]/tbody/tr/td/table[2]/tbody/tr")
|
||||
private List<WebElement> listNewsElement;
|
||||
|
||||
public SearchInTextResultPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public String getNewsElementToString(){
|
||||
return newsElement.getText();
|
||||
}
|
||||
|
||||
public boolean isListElementPresent(String text) {
|
||||
boolean matched = true;
|
||||
|
||||
for (int i = 4; i < listNewsElement.size(); i++) {
|
||||
if((i-1) % 3 == 0 && !listNewsElement.get(i).getText().toLowerCase().contains(text.toLowerCase())){
|
||||
matched = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return matched;
|
||||
}
|
||||
}
|
36
Skalkin/src/test/java/page/search/SearchMovieByWordPage.java
Normal file
36
Skalkin/src/test/java/page/search/SearchMovieByWordPage.java
Normal file
@ -0,0 +1,36 @@
|
||||
package page.search;
|
||||
|
||||
import org.openqa.selenium.Keys;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
|
||||
public class SearchMovieByWordPage {
|
||||
WebDriver driver;
|
||||
|
||||
@FindBy(id = "search_button")
|
||||
private WebElement buttonElement;
|
||||
|
||||
@FindBy(id = "search_field_1")
|
||||
private WebElement nameElement;
|
||||
|
||||
public SearchMovieByWordPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void insertNameSearch(String str) {
|
||||
nameElement.sendKeys(str);
|
||||
}
|
||||
|
||||
public void clickDown() {
|
||||
nameElement.sendKeys(Keys.ARROW_DOWN);
|
||||
}
|
||||
|
||||
public void clickEnter() {
|
||||
nameElement.sendKeys(Keys.ENTER);
|
||||
}
|
||||
|
||||
public void enterSearch() {
|
||||
buttonElement.click();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user