diff --git a/kurnaev/src/test/java/DownloadTests.java b/kurnaev/src/test/java/DownloadTests.java new file mode 100644 index 0000000..68a7d57 --- /dev/null +++ b/kurnaev/src/test/java/DownloadTests.java @@ -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(); + } +} diff --git a/kurnaev/src/test/java/NavigationTests.java b/kurnaev/src/test/java/NavigationTests.java index ea8a0cb..12c05d9 100644 --- a/kurnaev/src/test/java/NavigationTests.java +++ b/kurnaev/src/test/java/NavigationTests.java @@ -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() { diff --git a/kurnaev/src/test/java/context/Context.java b/kurnaev/src/test/java/context/Context.java index 49d9782..13ebb4e 100644 --- a/kurnaev/src/test/java/context/Context.java +++ b/kurnaev/src/test/java/context/Context.java @@ -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(driver.getWindowHandles()).get(tabNum).toString()); } + protected abstract void createDriver(); protected abstract String getDriverType(); diff --git a/kurnaev/src/test/java/page/GamePage.java b/kurnaev/src/test/java/page/GamePage.java new file mode 100644 index 0000000..6bd30dd --- /dev/null +++ b/kurnaev/src/test/java/page/GamePage.java @@ -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; + } + + } + + +} diff --git a/kurnaev/src/test/java/page/MainPage.java b/kurnaev/src/test/java/page/MainPage.java index 9bbfa35..12d6c4a 100644 --- a/kurnaev/src/test/java/page/MainPage.java +++ b/kurnaev/src/test/java/page/MainPage.java @@ -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; + } + + } }