Kyrnaev #9
73
kurnaev/src/test/java/DownloadTests.java
Normal file
73
kurnaev/src/test/java/DownloadTests.java
Normal file
@ -0,0 +1,73 @@
|
||||
import org.openqa.selenium.support.PageFactory;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
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 context.ChromeContext;
|
||||
import context.Context;
|
||||
import page.MainPage;
|
||||
import page.GamePage;
|
||||
|
||||
public class DownloadTests
|
||||
{
|
||||
|
||||
private final static String APP_URL = "http://gmt-max.net/";
|
||||
private static Context context;
|
||||
|
||||
@Test
|
||||
public void downloadTorrent()
|
||||
{
|
||||
|
||||
Context.getDriver().get(APP_URL);
|
||||
|
||||
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
|
||||
GamePage page1 = PageFactory.initElements(context.getDriver(), GamePage.class);
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(10); // Same as Thread.sleep(5000);
|
||||
// The "main" thread will sleep
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
page.clickPreviewLink();
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(5); // Same as Thread.sleep(5000);
|
||||
// The "main" thread will sleep
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
page1.clickDownloadLink();
|
||||
context.switchTab(1);
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(8); // Same as Thread.sleep(5000);
|
||||
// The "main" thread will sleep
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
page1.clickDownloadTorrentLink();
|
||||
|
||||
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(15); // Same as Thread.sleep(5000);
|
||||
// The "main" thread will sleep
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
|
||||
Assertions.assertTrue(GamePage.isDownloadPagePresent());
|
||||
|
||||
context.switchTab(0);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@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();
|
||||
}
|
||||
}
|
@ -130,6 +130,34 @@ public class NavigationTests
|
||||
Assertions.assertTrue(MainPage.islastMessageLinkPresent());
|
||||
|
||||
|
||||
}
|
||||
@Test
|
||||
public void sideMenuLink()
|
||||
{
|
||||
|
||||
Context.getDriver().get(APP_URL);
|
||||
|
||||
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(10); // Same as Thread.sleep(5000);
|
||||
// The "main" thread will sleep
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
page.clickSideMenuLink();
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(5); // Same as Thread.sleep(5000);
|
||||
// The "main" thread will sleep
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
page.clickSideMenuSubLink();
|
||||
try {
|
||||
TimeUnit.SECONDS.sleep(5); // Same as Thread.sleep(5000);
|
||||
// The "main" thread will sleep
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
Assertions.assertTrue(MainPage.isSideMenuLinkPresent());
|
||||
|
||||
|
||||
}
|
||||
@BeforeAll
|
||||
public static void setup() {
|
||||
|
@ -3,6 +3,8 @@ package context;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.chrome.ChromeDriver;
|
||||
import org.openqa.selenium.chrome.ChromeOptions;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
//import java.nio.file.*;
|
||||
//import java.io.File;
|
||||
@ -32,6 +34,8 @@ public abstract class Context {
|
||||
driver.quit();
|
||||
}
|
||||
|
||||
public void switchTab(int tabNum) { driver.switchTo().window(new ArrayList<String>(driver.getWindowHandles()).get(tabNum).toString()); }
|
||||
|
||||
protected abstract void createDriver();
|
||||
|
||||
protected abstract String getDriverType();
|
||||
|
47
kurnaev/src/test/java/page/GamePage.java
Normal file
47
kurnaev/src/test/java/page/GamePage.java
Normal file
@ -0,0 +1,47 @@
|
||||
package page;
|
||||
|
||||
import org.openqa.selenium.Keys;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.support.FindBy;
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.interactions.Actions;
|
||||
|
||||
public class GamePage
|
||||
{
|
||||
static WebDriver driver;
|
||||
|
||||
@FindBy(xpath = "//a[starts-with(@href,'/go.php?url=https://downloads-torrent.ru')]")
|
||||
private WebElement downloadLink;
|
||||
|
||||
@FindBy(xpath = "//html/body[@class='rectangles']/main[@class='fill']/section[@class='section section--fill']/div[@class='container no-index']/div[@class='block block-download']/a[@id='btn--download']")
|
||||
private WebElement downloadTorrentLink;
|
||||
|
||||
|
||||
|
||||
|
||||
public GamePage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
|
||||
public void clickDownloadLink() {
|
||||
downloadLink.click();
|
||||
}
|
||||
public void clickDownloadTorrentLink() {
|
||||
downloadTorrentLink.click();
|
||||
}
|
||||
|
||||
public static boolean isDownloadPagePresent() {
|
||||
try {
|
||||
|
||||
return driver.findElement(By.xpath("//html/body")).getText().indexOf("СКАЧАТЬ ТОРРЕНТ") >= 0;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -27,6 +27,12 @@ public class MainPage {
|
||||
@FindBy(xpath = "//html/body/div[@class='content'][1]/div[@class='forum_block']/div[@class='forum_msg_block']/div[@class='ltContent']/table/tbody/tr[7]/td[@class='topicInfo']/a[@class='topicLink']")
|
||||
private WebElement lastMessageLink;
|
||||
|
||||
@FindBy(xpath = "//html/body/div[@class='content_main']/div[@class='main_left_col blocks']/div[@id='firstpane'][2]/p[@class='menu_head1'][3]")
|
||||
private WebElement sideMenuLink;
|
||||
|
||||
@FindBy(xpath = "//html/body/div[@class='content_main']/div[@class='main_left_col blocks']/div[@id='firstpane'][2]/div[@class='menu_body'][3]/a[2]")
|
||||
private WebElement sideMenuSubLink;
|
||||
|
||||
public MainPage(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
}
|
||||
@ -41,6 +47,8 @@ public class MainPage {
|
||||
public void clickpopularGiveup() { popularGiveup.click(); }
|
||||
public void clickexternalLink() { externalLink.click(); }
|
||||
public void clicklastMessageLink() { lastMessageLink.click(); }
|
||||
public void clickSideMenuLink() { sideMenuLink.click(); }
|
||||
public void clickSideMenuSubLink() { sideMenuSubLink.click(); }
|
||||
|
||||
public static boolean isRulesPresent() {
|
||||
try {
|
||||
@ -97,4 +105,15 @@ public class MainPage {
|
||||
}
|
||||
|
||||
}
|
||||
public static boolean isSideMenuLinkPresent() {
|
||||
try {
|
||||
|
||||
return driver.findElement(By.xpath("//html/body/div[@class='content_main']/div[@class='main_content_nav']")).getText().indexOf("Rpg") >= 0;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user