Исправлены ошибки второго призыва.

Работа с авторизацией вынесена в отдельный класс.
This commit is contained in:
Антон Скалкин 2018-05-07 15:41:31 +04:00
parent 96d2bb769c
commit 315eba8c26
14 changed files with 217 additions and 182 deletions

View File

@ -30,24 +30,27 @@ public class AutorizationTests {
public void testLoginSocial(){
context.getDriver().get(APP_URL);//Открыта страница фильма
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню
LoginPage page = PageFactory.initElements(context.getDriver(), LoginPage.class);//Выбрать пункт меню
page.clickButtonLogin();
page.isFrameLogin();
page.frameLogin();
page.isButtonVK();
page.clickButtonVK();
page.frameDefault();
page.switchToSocial();
VKPage pageTo = PageFactory.initElements(context.getDriver(), VKPage.class);
Assertions.assertTrue(pageTo.isUserPresent());
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);//Открыта страница фильма
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню
LoginPage page = PageFactory.initElements(context.getDriver(), LoginPage.class);//Выбрать пункт меню
page.clickButtonLogin();
page.isFrameLogin();
page.frameLogin();
@ -58,6 +61,7 @@ public class AutorizationTests {
page.frameDefault();
Assertions.assertTrue(page.isAutorization());
context.getDriver().get("https://www.kinopoisk.ru/logout/");
}
@Test

View File

@ -34,8 +34,8 @@ public class NavigationTests {
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);
page.clickSubMenu();
AfishaPage pageTo = PageFactory.initElements(context.getDriver(), AfishaPage.class);
Assertions.assertTrue(pageTo.isUserPresent());//Корректно отображена выбранная страница
AfishaPage pageAfisha = PageFactory.initElements(context.getDriver(), AfishaPage.class);
Assertions.assertTrue(pageAfisha.isTopViewElementPresent());//Корректно отображена выбранная страница
}
@Test
@ -45,29 +45,29 @@ public class NavigationTests {
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню
page.clickLogo();
Assertions.assertTrue(page.isUserPresent());//Корректно отображена выбранная страница
Assertions.assertTrue(page.isMainPagePresent());//Корректно отображена выбранная страница
}
@Test
public void testInfoMovie() {
context.getDriver().get(APP_URL_MOVIE);//Открыта страница фильма
MoviePage page = PageFactory.initElements(context.getDriver(), MoviePage.class);//Выбрать пункт меню
page.clickInfo();
MoviePage pageMovie = PageFactory.initElements(context.getDriver(), MoviePage.class);//Выбрать пункт меню
pageMovie.clickInfo();
ActorPage pageActor = PageFactory.initElements(context.getDriver(), ActorPage.class);
Assertions.assertTrue(pageActor.isUserPresent());//Корректно отображена выбранная страница
Assertions.assertTrue(pageActor.isActorPagePresent());//Корректно отображена выбранная страница
}
@Test
public void testInfoActor() {
context.getDriver().get(APP_URL_ACTOR);//Открыта страница фильма
ActorPage page = PageFactory.initElements(context.getDriver(), ActorPage.class);//Выбрать пункт меню
page.clickInfo();
ActorPage pageActor = PageFactory.initElements(context.getDriver(), ActorPage.class);//Выбрать пункт меню
pageActor.clickInfo();
MoviePage pageActor = PageFactory.initElements(context.getDriver(), MoviePage.class);
Assertions.assertTrue(pageActor.isUserPresent());//Корректно отображена выбранная страница
MoviePage pageMovie = PageFactory.initElements(context.getDriver(), MoviePage.class);
Assertions.assertTrue(pageMovie.isMoviePagePresent());//Корректно отображена выбранная страница
}
@Test
@ -78,7 +78,7 @@ public class NavigationTests {
page.clickDownMenu();
RandomSearchPage pageSearch = PageFactory.initElements(context.getDriver(), RandomSearchPage.class);
Assertions.assertTrue(pageSearch.isUserPresent());//Корректно отображена выбранная страница
Assertions.assertTrue(pageSearch.isRandomMovieFormPresent());//Корректно отображена выбранная страница
}
@Test
@ -88,31 +88,37 @@ public class NavigationTests {
MainPage page = PageFactory.initElements(context.getDriver(), MainPage.class);//Выбрать пункт меню
page.clickRightMenu();
MoviePage pageSearch = PageFactory.initElements(context.getDriver(), MoviePage.class);
Assertions.assertTrue(pageSearch.isUserPresent());//Корректно отображена выбранная страница
MoviePage pageMovie = PageFactory.initElements(context.getDriver(), MoviePage.class);
Assertions.assertTrue(pageMovie.isMoviePagePresent());//Корректно отображена выбранная страница
}
@Test
public void testSocialMovieMenu() {
context.getDriver().get(APP_URL_MOVIE);//Открыта страница фильма
MoviePage page = PageFactory.initElements(context.getDriver(), MoviePage.class);//Выбрать пункт меню
page.clickSocial();
page.switchToSocial();
MoviePage pageMovie = PageFactory.initElements(context.getDriver(), MoviePage.class);//Выбрать пункт меню
pageMovie.clickSocial();
VKPage pageVk = PageFactory.initElements(context.getDriver(), VKPage.class);
Assertions.assertTrue(pageVk.isUserPresent());
pageVk.setOldWindow();
pageVk.switchToSocial();
Assertions.assertTrue(pageVk.isVkPagePresent());
pageVk.closeWindow();
pageVk.switchToOldWindow();
}
@Test
public void testSocialActorMenu() {
context.getDriver().get(APP_URL_ACTOR);//Открыта страница фильма
ActorPage page = PageFactory.initElements(context.getDriver(), ActorPage.class);//Выбрать пункт меню
page.clickSocial();
page.switchToSocial();
ActorPage pageActor = PageFactory.initElements(context.getDriver(), ActorPage.class);//Выбрать пункт меню
pageActor.clickSocial();
VKPage pageVk = PageFactory.initElements(context.getDriver(), VKPage.class);
Assertions.assertTrue(pageVk.isUserPresent());
pageVk.setOldWindow();
pageVk.switchToSocial();
Assertions.assertTrue(pageVk.isVkPagePresent());
pageVk.closeWindow();
pageVk.switchToOldWindow();
}
}

View File

@ -24,7 +24,7 @@ public class SearchTests {
@AfterAll
public static void quit() {
context.close();
//context.close();
}
@Test
@ -36,7 +36,7 @@ public class SearchTests {
page.enterSearch();
SearchExtendedResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isUserPresent());
Assertions.assertTrue(pageTo.isResultTopElementPresent());
}
@Test
@ -49,8 +49,8 @@ public class SearchTests {
page.clickCountry();
page.enterSearch();
SearchExtendedResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isUserPresent());
SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultTopElementPresent());
}
@Test
@ -65,8 +65,8 @@ public class SearchTests {
Thread.sleep(500);
page.enterSearch();
SearchByCreatorsResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isUserPresent());
SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultCreatorsPresent());
}
@Test
@ -77,8 +77,8 @@ public class SearchTests {
page.insertNameSearch("Безруков");
page.enterSearch();
SearchExtendedResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isUserPresent());
SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultTopElementPresent());
}
@Test
@ -89,8 +89,8 @@ public class SearchTests {
page.insertNameSearch("Веном");
page.enterSearch();
SearchInTextResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchInTextResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isUserPresent());
SearchInTextResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchInTextResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isHeaderElementPresent());
}
@Test
@ -101,8 +101,8 @@ public class SearchTests {
page.insertNameSearch("Антон");
page.enterSearch();
SearchExtendedResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isUserPresent());
SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultTopElementPresent());
}
@Test
@ -113,8 +113,8 @@ public class SearchTests {
page.insertNameSearch("Война");
page.enterSearch();
SearchByKeywordResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isUserPresent());
SearchByKeywordResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isNewsElementPresent());
}
@Test
@ -128,8 +128,8 @@ public class SearchTests {
page.clickEnter();
page.enterSearch();
SearchByCreatorsResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isUserPresent());
SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultCreatorsPresent());
}
@Test
@ -140,7 +140,7 @@ public class SearchTests {
page.insertNameSearch("Disney");
page.enterSearch();
SearchByKeywordResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isUserPresent());
SearchByKeywordResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isNewsElementPresent());
}
}

View File

@ -13,6 +13,10 @@ public class ActorPage {
@FindBy(css = ".ya-share2__list a")
private WebElement socialElement;
public ActorPage(WebDriver driver) {
this.driver = driver;
}
public void clickInfo() {
infoElement.click();
}
@ -21,17 +25,7 @@ public class ActorPage {
socialElement.click();
}
public void switchToSocial(){
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle);
}
}
public ActorPage(WebDriver driver) {
this.driver = driver;
}
public boolean isUserPresent() {
public boolean isActorPagePresent() {
return infoElement.isDisplayed();
}
}

View File

@ -11,13 +11,13 @@ public class AfishaPage {
WebDriver driver;
@FindBy(css = ".tableTopViewSeansMain")
private WebElement topElement;
private WebElement topViewElement;
public AfishaPage(WebDriver driver) {
this.driver = driver;
}
public boolean isUserPresent() {
return topElement.isDisplayed();
public boolean isTopViewElementPresent() {
return topViewElement.isDisplayed();
}
}

View 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();
}
}

View File

@ -33,29 +33,8 @@ public class MainPage {
@FindBy(css = ".header-fresh-search-partial-component__field")
private WebElement searchElement;
@FindBy(id = "top_3banners")
private WebElement topBaners;
@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(id = "index_news")
private WebElement newsBaners;
public MainPage(WebDriver driver) {
this.driver = driver;
@ -87,81 +66,7 @@ public class MainPage {
searchElement.sendKeys(Keys.ENTER);
}
public void clickButtonLogin() {
buttonLogin.click();
}
public void clickButtonVK() {
buttonVK.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 void switchToSocial(){
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle);
}
}
public boolean isUserPresent() {
return topBaners.isDisplayed();
}
public boolean isAutorization() {
return elementAvatar.isDisplayed();
public boolean isMainPagePresent() {
return newsBaners.isDisplayed();
}
}

View File

@ -35,17 +35,11 @@ public class MoviePage {
buttonLike.click();
}
public void switchToSocial(){
for (String winHandle : driver.getWindowHandles()) {
driver.switchTo().window(winHandle);
}
}
public boolean isErrorLike() {
return infoError.isDisplayed();
}
public boolean isUserPresent() {
public boolean isMoviePagePresent() {
return infoElement.isDisplayed();
}
}

View File

@ -8,13 +8,13 @@ public class RandomSearchPage {
WebDriver driver;
@FindBy(css = ".randomMovie")
private WebElement element;
private WebElement randomMovieForm;
public RandomSearchPage(WebDriver driver) {
this.driver = driver;
}
public boolean isUserPresent() {
return element.isDisplayed();
public boolean isRandomMovieFormPresent() {
return randomMovieForm.isDisplayed();
}
}

View File

@ -6,15 +6,35 @@ import org.openqa.selenium.support.FindBy;
public class VKPage {
WebDriver driver;
private String oldWindow;
@FindBy(id = "login_submit")
private WebElement element;
private WebElement formLoginVk;
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 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();
}
}

View File

@ -8,13 +8,13 @@ public class SearchByCreatorsResultPage {
WebDriver driver;
@FindBy(css = ".search_adv")
private WebElement element;
private WebElement resultCreatorsElement;
public SearchByCreatorsResultPage(WebDriver driver) {
this.driver = driver;
}
public boolean isUserPresent() {
return element.isDisplayed();
public boolean isResultCreatorsPresent() {
return resultCreatorsElement.isDisplayed();
}
}

View File

@ -8,13 +8,13 @@ public class SearchByKeywordResultPage {
WebDriver driver;
@FindBy(css = ".news")
private WebElement element;
private WebElement newsElement;
public SearchByKeywordResultPage(WebDriver driver) {
this.driver = driver;
}
public boolean isUserPresent() {
return element.isDisplayed();
public boolean isNewsElementPresent() {
return newsElement.isDisplayed();
}
}

View File

@ -8,13 +8,13 @@ public class SearchExtendedResultPage {
WebDriver driver;
@FindBy(css = ".search_results_top")
private WebElement element;
private WebElement resultTopElement;
public SearchExtendedResultPage(WebDriver driver) {
this.driver = driver;
}
public boolean isUserPresent() {
return element.isDisplayed();
public boolean isResultTopElementPresent() {
return resultTopElement.isDisplayed();
}
}

View File

@ -8,13 +8,13 @@ public class SearchInTextResultPage {
WebDriver driver;
@FindBy(css = ".textorangebig")
private WebElement element;
private WebElement headerElement;
public SearchInTextResultPage(WebDriver driver) {
this.driver = driver;
}
public boolean isUserPresent() {
return element.isDisplayed();
public boolean isHeaderElementPresent() {
return headerElement.isDisplayed();
}
}