Compare commits

..

2 Commits

Author SHA1 Message Date
Anton Romanov
0ea8df6c32 Merge remote-tracking branch 'origin/master' 2019-11-21 10:46:02 +04:00
Anton Romanov
0ba38238af fix selector 2019-11-21 10:45:52 +04:00
25 changed files with 1 additions and 1184 deletions

156
Stroeva/.gitignore vendored
View File

@ -1,156 +0,0 @@
# 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/

View File

@ -1,2 +0,0 @@
Selenium WebDriver example project

View File

@ -1,49 +0,0 @@
<?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>

View File

@ -1,8 +0,0 @@
package ru.ulstu.tis;
public class Main {
public static void main(String[] args) {
System.out.println("666");
}
}

View File

@ -1,94 +0,0 @@
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 AccountTests {
private final static String APP_URL = "http://amovies.cc/serials_2017/5812-mertv-na-99.html";
private static Context context;
@BeforeAll
public static void setup() {
context = new ChromeContext();
context.start();
context.getDriver().manage().window().setSize(new Dimension(1366, 768));
}
@AfterAll
public static void quit() {
context.close();
}
@Test
public void testSignIn() {
context.getDriver().get(APP_URL);
LoginPage page = PageFactory.initElements(context.getDriver(), LoginPage.class);
page.login();
Assertions.assertTrue(page.isUserPresent());
page.clickAccUser();
page.clickExitAccUser();
}
@Test
public void testSignInVK() throws InterruptedException {
context.getDriver().get(APP_URL);
LoginPage page = PageFactory.initElements(context.getDriver(), LoginPage.class);
page.clickSignIn();
page.clickVkButton();
VKPage pageVk = PageFactory.initElements(context.getDriver(), VKPage.class);
String str = context.getDriver().getWindowHandle();
pageVk.switchToSocial();
Assertions.assertTrue(pageVk.isUserPresent());
pageVk.closeSocial();
pageVk.switchToOld(str);
Thread.sleep(1000);
page.clickToCloseFormButton();
}
@Test
public void testEditAcc() throws InterruptedException {
context.getDriver().get(APP_URL);
LoginPage page = PageFactory.initElements(context.getDriver(), LoginPage.class);
page.login();
page.clickAccUser();
AccUserPage pageAn = PageFactory.initElements(context.getDriver(), AccUserPage.class);
pageAn.clearEmail();
pageAn.editEmail("Test2018t@mail.ru");
pageAn.clickToButtonSave();
Assertions.assertTrue(pageAn.checkEmail("Test2018t@mail.ru"));
page.clickAccUser();
page.clickExitAccUser();
}
@Test
public void testFavoritePage() {
context.getDriver().get(APP_URL);
LoginPage page = PageFactory.initElements(context.getDriver(), LoginPage.class);
page.login();
page.clickAccUser();
AccUserPage pageAn = PageFactory.initElements(context.getDriver(), AccUserPage.class);
pageAn.clickToFavorite();
Assertions.assertTrue(pageAn.isListPage());
page.clickAccUser();
page.clickExitAccUser();
}
@Test
public void testFuturePage() {
context.getDriver().get(APP_URL);
LoginPage page = PageFactory.initElements(context.getDriver(), LoginPage.class);
page.login();
page.clickAccUser();
AccUserPage pageAn = PageFactory.initElements(context.getDriver(), AccUserPage.class);
pageAn.clickToFuture();
Assertions.assertTrue(pageAn.isListPage());
page.clickAccUser();
page.clickExitAccUser();
}
}

View File

@ -1,61 +0,0 @@
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.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.support.PageFactory;
import page.*;
public class FilterTests {
private final static String APP_URL = "http://amovies.cc/serials/";
private static Context context;
@BeforeAll
public static void setup() {
context = new ChromeContext();
context.start();
context.getDriver().manage().window().setSize(new Dimension(1366, 768));
}
@AfterAll
public static void quit() {
context.close();
}
@Test
public void testSearch() {
context.getDriver().get(APP_URL);
SerialPage page = PageFactory.initElements(context.getDriver(), SerialPage.class);
page.clickSearchButton();
page.insertSearchText("Супердевушка");
page.insertEnterSearchText();
SearchPage pageAn = PageFactory.initElements(context.getDriver(), SearchPage.class);
Assertions.assertTrue(pageAn.isListSearchPresent("Супердевушка"));
}
@Test
public void testCountryList() throws InterruptedException {
context.getDriver().get(APP_URL);
SerialPage page = PageFactory.initElements(context.getDriver(), SerialPage.class);
page.clickCountry();
Thread.sleep(2000);
page.clickSerial();
ExSerialPage pageAn = PageFactory.initElements(context.getDriver(), ExSerialPage.class);
Assertions.assertTrue(pageAn.isCountryPresent());
}
@Test
public void testGenreList() throws InterruptedException {
context.getDriver().get(APP_URL);
SerialPage page = PageFactory.initElements(context.getDriver(), SerialPage.class);
page.clickGenre();
Thread.sleep(2000);
page.clickSerial();
ExSerialPage pageAn = PageFactory.initElements(context.getDriver(), ExSerialPage.class);
Assertions.assertTrue(pageAn.isGenrePresent());
}
}

View File

@ -1,94 +0,0 @@
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 = "http://amovies.cc/";
private static Context context;
@BeforeAll
public static void setup() {
context = new ChromeContext();
context.start();
context.getDriver().manage().window().setSize(new Dimension(1366, 768));
}
@AfterAll
public static void quit() {
context.close();
}
@Test
public void testLogo() {
context.getDriver().get(APP_URL);
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
page.clickLogo();
Assertions.assertTrue(page.isFilterPresent());
}
@Test
public void testFooter() {
context.getDriver().get(APP_URL);
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
page.clickFooter();
HolderPage pageAn = PageFactory.initElements(context.getDriver(), HolderPage.class);
Assertions.assertTrue(pageAn.isHolderPresent());
}
@Test
public void testRating() {
context.getDriver().get(APP_URL);
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
String str = page.getRating();
page.clickRating();
NavFilterPage pageAn = PageFactory.initElements(context.getDriver(), NavFilterPage.class);
Assertions.assertTrue(pageAn.isContentPresent(str));
}
@Test
public void testYear() {
context.getDriver().get(APP_URL);
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
String str = page.getYear();
page.clickYear();
NavFilterPage pageAn = PageFactory.initElements(context.getDriver(), NavFilterPage.class);
Assertions.assertTrue(pageAn.isContentPresent(str));
}
@Test
public void testCountry() {
context.getDriver().get(APP_URL);
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
String str = page.getCountry();
page.clickCountry();
NavFilterPage pageAn = PageFactory.initElements(context.getDriver(), NavFilterPage.class);
Assertions.assertTrue(pageAn.isContentPresent(str));
}
@Test
public void testGenre() {
context.getDriver().get(APP_URL);
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
String str = page.getGenre();
page.clickGenre();
NavFilterPage pageAn = PageFactory.initElements(context.getDriver(), NavFilterPage.class);
Assertions.assertTrue(pageAn.isContentPresent(str));
}
@Test
public void testMenu() {
context.getDriver().get(APP_URL);
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
String str = page.getElementMenu();
page.clickMenu();
NavFilterPage pageAn = PageFactory.initElements(context.getDriver(), NavFilterPage.class);
Assertions.assertTrue(pageAn.isPagePresent(str));
}
}

View File

@ -1,95 +0,0 @@
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.ExSerialPage;
import page.LoginPage;
import page.SearchPage;
import page.SerialPage;
public class VideoTests {
private final static String APP_URL = "http://amovies.cc/serials_2017/5812-mertv-na-99.html";
private static Context context;
@BeforeAll
public static void setup() {
context = new ChromeContext();
context.start();
context.getDriver().manage().window().setSize(new Dimension(1366, 768));
}
@AfterAll
public static void quit() {
context.close();
}
@Test
public void testOpenFilter() {
context.getDriver().get(APP_URL);
ExSerialPage page = PageFactory.initElements(context.getDriver(), ExSerialPage.class);
String str = page.getGenre();
page.clickGenre();
SerialPage pageAn = PageFactory.initElements(context.getDriver(), SerialPage.class);
pageAn.clickSerial();
Assertions.assertTrue(page.checkGenre(str));
}
@Test
public void testAddToFavorite() {
context.getDriver().get(APP_URL);
ExSerialPage page = PageFactory.initElements(context.getDriver(), ExSerialPage.class);
LoginPage loginPage = PageFactory.initElements(context.getDriver(), LoginPage.class);
loginPage.login();
page.clickToFavorite();
Assertions.assertTrue(page.isFavoritePresent());
page.clickToFavorite();
loginPage.clickAccUser();
loginPage.clickExitAccUser();
}
@Test
public void testAddToFuture() {
context.getDriver().get(APP_URL);
ExSerialPage page = PageFactory.initElements(context.getDriver(), ExSerialPage.class);
LoginPage loginPage = PageFactory.initElements(context.getDriver(), LoginPage.class);
loginPage.login();
page.clickToFuture();
Assertions.assertTrue(page.isFuturePresent());
page.clickToFuture();
loginPage.clickAccUser();
loginPage.clickExitAccUser();
}
@Test
public void testRating() {
context.getDriver().get(APP_URL);
ExSerialPage page = PageFactory.initElements(context.getDriver(), ExSerialPage.class);
LoginPage loginPage = PageFactory.initElements(context.getDriver(), LoginPage.class);
loginPage.login();
int count = page.getRatingUpNum();
page.clickRating();
Assertions.assertTrue(page.getRatingUpNum() >= count );
loginPage.clickAccUser();
loginPage.clickExitAccUser();
}
@Test
public void testComment() throws InterruptedException {
context.getDriver().get(APP_URL);
ExSerialPage page = PageFactory.initElements(context.getDriver(), ExSerialPage.class);
LoginPage loginPage = PageFactory.initElements(context.getDriver(), LoginPage.class);
loginPage.login();
page.clickCommentButton();
page.commentWrite("Отличный фильм!");
page.clickCommentAdd();
Thread.sleep(2000);
Assertions.assertTrue(page.isCommentPresent());
loginPage.clickAccUser();
loginPage.clickExitAccUser();
}
}

View File

@ -1,25 +0,0 @@
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;
}
}

View File

@ -1,43 +0,0 @@
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");
}
}

View File

@ -1,24 +0,0 @@
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;
}
}

View File

@ -1,57 +0,0 @@
package page;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class AccUserPage {
WebDriver driver;
@FindBy(xpath = "//*[@id=\"userinfo\"]/div[2]/div[4]/div/div[1]/span[2]/input")
private WebElement email;
@FindBy(css = ".submit-user")
private WebElement buttonSave;
@FindBy(xpath = "//a[@href='/like/']")
private WebElement favoritButton;
@FindBy(css = ".short-film")
private WebElement filmElement;
@FindBy(xpath = "//a[@href='/tosee/']")
private WebElement futureButton;
public AccUserPage(WebDriver driver) {
this.driver = driver;
}
public void editEmail(String str) {
email.sendKeys(str);
}
public void clickToButtonSave() {
buttonSave.click();
}
public void clickToFavorite() {
favoritButton.click();
}
public void clickToFuture() {
futureButton.click();
}
public boolean checkEmail(String str){
if(email.getAttribute("value").equals(str))
return true;
else return false;
}
public void clearEmail() {
email.clear();
}
public boolean isListPage() {
return filmElement.isDisplayed();
}
}

View File

@ -1,122 +0,0 @@
package page;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import java.util.List;
public class ExSerialPage {
WebDriver driver;
@FindBy(xpath = "//a[@href='http://amovies.cc/russia/']")
private WebElement countrySerialElement;
@FindBy(xpath = "//a[@href='http://amovies.cc/boeviki_2018/']")
private WebElement genreSerialElement;
@FindBy(xpath = "//*[@id=\"dle-content\"]/article/span/div[1]/div[1]/div[4]/div/div[1]/div[2]/a[1]")
private WebElement genreAnySerialElement;
@FindBy(xpath = "//*[@id=\"dle-content\"]/article/span/div[1]/div[1]/div[4]/div/div[1]/div[2]")
private List<WebElement> genreListElement;
@FindBy(id = "film-favorite")
private WebElement toFavorites;
@FindBy(id = "film-future")
private WebElement toFuture;
@FindBy(css = "#film-favorite.in")
private WebElement toFavoritesIn;
@FindBy(css = "#film-future.in")
private WebElement toFutureIn;
@FindBy(id = "rating-btn")
private WebElement rating;
@FindBy(id = "rating-up")
private WebElement ratingUp;
@FindBy(css = ".write-comm")
private WebElement commentButton;
@FindBy(id = "comments")
private WebElement commentWrite;
@FindBy(css = ".fbutton")
private WebElement commentAdd;
@FindBy(xpath = "//a[@href='http://amovies.cc/user/test2018/']")
private WebElement checkComment;
public ExSerialPage(WebDriver driver) {
this.driver = driver;
}
public void clickGenre() {
genreAnySerialElement.click();
}
public String getGenre() {
return genreAnySerialElement.getText();
}
public boolean checkGenre(String genre) {
for (WebElement el:
genreListElement) {
if(el.getText().contains(genre))
return true;
}
return false;
}
public void clickToFavorite() {
toFavorites.click();
}
public void clickToFuture() {
toFuture.click();
}
public void clickRating() {
rating.click();
}
public int getRatingUpNum() {
return Integer.parseInt(ratingUp.getText());
}
public void clickCommentButton() {
commentButton.click();
}
public void commentWrite(String str) {
commentWrite.sendKeys(str);
}
public void clickCommentAdd() {
commentAdd.click();
}
public boolean isCountryPresent() {
return countrySerialElement.isDisplayed();
}
public boolean isGenrePresent() {
return genreSerialElement.isDisplayed();
}
public boolean isFavoritePresent() {
return toFavoritesIn.isDisplayed();
}
public boolean isFuturePresent() {
return toFutureIn.isDisplayed();
}
public boolean isCommentPresent() {
return checkComment.isDisplayed();
}
}

View File

@ -1,20 +0,0 @@
package page;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class HolderPage {
WebDriver driver;
@FindBy(css = ".box-text")
private WebElement holderElement;
public HolderPage(WebDriver driver) {
this.driver = driver;
}
public boolean isHolderPresent() {
return holderElement.isDisplayed();
}
}

View File

@ -1,82 +0,0 @@
package page;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import java.util.List;
public class LoginPage {
WebDriver driver;
@FindBy(css = ".login")
private WebElement signIn;
@FindBy(id = "login_name")
private WebElement login;
@FindBy(id = "login_password")
private WebElement pass;
@FindBy(css = ".login-button")
private WebElement buttonLogin;
@FindBy(css = ".user")
private WebElement user;
@FindBy(css = ".ulogin-button-vkontakte")
private WebElement vkButton;
@FindBy(xpath = "//a[@href='/index.php?action=logout']")
private WebElement exitButton;
@FindBy(css = ".fa.fa-times.overlay-close")
private WebElement closeFormButton;
public LoginPage(WebDriver driver) {
this.driver = driver;
}
public void clickSignIn() {
signIn.click();
}
public void insertLogin(String str) {
login.sendKeys(str);
}
public void insertPass(String str) {
pass.sendKeys(str);
}
public void clickToButtonLogin() {
buttonLogin.click();
}
public void login(){
clickSignIn();
insertLogin("test2018");
insertPass("q1w2e3r4t5");
clickToButtonLogin();
}
public void clickAccUser() {
user.click();
}
public void clickExitAccUser() {
exitButton.click();
}
public void clickToCloseFormButton() {
closeFormButton.click();
}
public boolean isUserPresent() {
return user.isDisplayed();
}
public void clickVkButton() {
vkButton.click();
}
}

View File

@ -1,97 +0,0 @@
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 = ".logo")
private WebElement logoElement;
@FindBy(css = ".nav-filter")
private WebElement filterElement;
@FindBy(css = ".footer-nav")
private WebElement footerElement;
@FindBy(xpath = "//a[@href='/top/']")
private WebElement ratingElement;
@FindBy(xpath = "//a[@href='/filmy_2018/']")
private WebElement yearElement;
@FindBy(xpath = "//a[@href='/britain/']")
private WebElement countryElement;
@FindBy(xpath = "//a[@href='/horror/']")
private WebElement genreElement;
@FindBy(xpath = "//a[@href='/serials/']")
private WebElement menuElement;
public MainPage(WebDriver driver) {
this.driver = driver;
}
public void clickLogo() {
logoElement.click();
}
public void clickFooter() {
footerElement.click();
}
public void clickRating() {
ratingElement.click();
}
public void clickYear() {
yearElement.click();
}
public void clickCountry() {
countryElement.click();
}
public void clickGenre() {
genreElement.click();
}
public void clickMenu() {
menuElement.click();
}
public String getRating(){
return ratingElement.getText();
}
public String getYear(){
return yearElement.getText();
}
public String getCountry(){
return countryElement.getText();
}
public String getGenre(){
return genreElement.getText();
}
public String getElementMenu(){
return menuElement.getText();
}
public boolean isFilterPresent() {
return filterElement.isDisplayed();
}
}

View File

@ -1,24 +0,0 @@
package page;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class NavFilterPage {
WebDriver driver;
@FindBy(xpath = "/html/body/div[1]/div[2]/div[2]/h1")
private WebElement title;
public NavFilterPage(WebDriver driver) {
this.driver = driver;
}
public boolean isPagePresent(String str) {
return driver.getTitle().toUpperCase().contains(str.toUpperCase());
}
public boolean isContentPresent(String str) {
return title.getText().toUpperCase().contains(str.toUpperCase());
}
}

View File

@ -1,35 +0,0 @@
package page;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import java.util.List;
public class SearchPage {
WebDriver driver;
@FindBy(xpath = "//*[@id=\"serials\"]/div/div[2]/div[1]")
private WebElement searchElement;
@FindBy(css = ".post-title")
private List<WebElement> listSearchElement;
public SearchPage(WebDriver driver) {
this.driver = driver;
}
public boolean isSearchPresent(String str) {
return searchElement.getText().contains(str);
}
public boolean isListSearchPresent(String str) {
boolean bl=true;
for(int i=0; i<listSearchElement.size();i++){
if(bl && !listSearchElement.get(i).getText().toLowerCase().contains(str.toLowerCase())){
bl=false;
}
}
return bl;
}
}

View File

@ -1,61 +0,0 @@
package page;
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 SerialPage {
WebDriver driver;
@FindBy(id = "show-search")
private WebElement searchButton;
@FindBy(id = "story")
private WebElement searchText;
@FindBy(xpath = "/html/body/div[1]/div[2]/div[3]/div[1]/div[2]/div/div/div[2]/button[2]")
private WebElement countryList;
@FindBy(css = "#dle-content .short-film")
private WebElement serialElement;
@FindBy(xpath = "/html/body/div[1]/div[2]/div[3]/div[2]/div[2]/div/div/div[2]/button[3]")
private WebElement genreList;
public SerialPage(WebDriver driver) {
this.driver = driver;
}
public void clickSearchButton() {
searchButton.click();
}
public void insertSearchText(String str) {
searchText.sendKeys(str);
}
public void insertEnterSearchText() {
searchText.sendKeys(Keys.ENTER);
}
public void clickCountry() {
countryList.click();
}
public void clickSerial() {
serialElement.click();
}
public void clickGenre() {
genreList.click();
}
// public boolean isUserPresent() {
// return holderElement.isDisplayed();
// }
}

View File

@ -1,34 +0,0 @@
package page;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class VKPage {
WebDriver driver;
@FindBy(id = "login_submit")
private WebElement element;
public VKPage(WebDriver driver) {
this.driver = driver;
}
public boolean isUserPresent() {
return element.isDisplayed();
}
public void switchToSocial(){
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle);
}
}
public void switchToOld(String str){
driver.switchTo().window(str);
}
public void closeSocial(){
driver.close();
}
}

View File

@ -12,7 +12,7 @@ public class SearchPage {
@FindBy(css = "input.header-search-input")
private WebElement inputField;
@FindBy(xpath = "//*[@class='menu border']/a[7]")
@FindBy(xpath = "//a[contains(@href, 'Users')]")
private WebElement usersLink;
public SearchPage(WebDriver driver) {