Улучшено тестирование поиска. Теперь проверяет элементы на странице

This commit is contained in:
Антон Скалкин 2018-05-11 23:08:00 +04:00
parent a46383c4fb
commit 224452000a
5 changed files with 70 additions and 14 deletions

View File

@ -24,7 +24,7 @@ public class SearchTests {
@AfterAll @AfterAll
public static void quit() { public static void quit() {
context.close(); //context.close();
} }
@Test @Test
@ -36,7 +36,7 @@ public class SearchTests {
page.enterSearch(); page.enterSearch();
SearchExtendedResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница SearchExtendedResultPage pageTo = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageTo.isResultTopElementPresent()); Assertions.assertTrue(pageTo.isFirstResultElementPresent());
} }
@Test @Test
@ -50,7 +50,7 @@ public class SearchTests {
page.enterSearch(); page.enterSearch();
SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultTopElementPresent()); Assertions.assertTrue(pageResult.isFirstResultElementPresent());
} }
@Test @Test
@ -59,14 +59,14 @@ public class SearchTests {
SearchByCreatorsPage page = PageFactory.initElements(context.getDriver(), SearchByCreatorsPage.class);//Выбрать пункт меню SearchByCreatorsPage page = PageFactory.initElements(context.getDriver(), SearchByCreatorsPage.class);//Выбрать пункт меню
page.insertNameSearch("Безруков"); page.insertNameSearch("Безруков");
Thread.sleep(2000); Thread.sleep(2500);
page.clickDown(); page.clickDown();
page.clickEnter(); page.clickEnter();
Thread.sleep(500); Thread.sleep(1000);
page.enterSearch(); page.enterSearch();
SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultCreatorsPresent()); Assertions.assertTrue(pageResult.isFirstResultCreatorsPresent());
} }
@Test @Test
@ -78,7 +78,7 @@ public class SearchTests {
page.enterSearch(); page.enterSearch();
SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultTopElementPresent()); Assertions.assertTrue(pageResult.isActorResultElementPresent());
} }
@Test @Test
@ -90,7 +90,8 @@ public class SearchTests {
page.enterSearch(); page.enterSearch();
SearchInTextResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchInTextResultPage.class);//Корректно отображена выбранная страница SearchInTextResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchInTextResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isHeaderElementPresent()); String str = pageResult.getNewsElementToString();
Assertions.assertTrue(pageResult.getNewsElementToString().contains("Веном"));
} }
@Test @Test
@ -102,7 +103,7 @@ public class SearchTests {
page.enterSearch(); page.enterSearch();
SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница SearchExtendedResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchExtendedResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultTopElementPresent()); Assertions.assertTrue(pageResult.isUsersResultElementPresent("Антон"));
} }
@Test @Test
@ -114,33 +115,38 @@ public class SearchTests {
page.enterSearch(); page.enterSearch();
SearchByKeywordResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница SearchByKeywordResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isNewsElementPresent()); Assertions.assertTrue(pageResult.isFirstResultElementPresent("Война"));
} }
@Test @Test
public void testSearchMovieByWord(){ public void testSearchMovieByWord() throws InterruptedException {
context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных
SearchMovieByWordPage page = PageFactory.initElements(context.getDriver(), SearchMovieByWordPage.class);//Выбрать пункт меню SearchMovieByWordPage page = PageFactory.initElements(context.getDriver(), SearchMovieByWordPage.class);//Выбрать пункт меню
page.insertNameSearch("Магия"); page.insertNameSearch("Магия");
Thread.sleep(500);
page.clickDown(); page.clickDown();
Thread.sleep(500);
page.clickDown(); page.clickDown();
Thread.sleep(500);
page.clickEnter(); page.clickEnter();
Thread.sleep(1000);
page.enterSearch(); page.enterSearch();
SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница SearchByCreatorsResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByCreatorsResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isResultCreatorsPresent()); Assertions.assertTrue(pageResult.isFirstResultByWordPresent());
} }
@Test @Test
public void testSearchByStudio() { public void testSearchByStudio() throws InterruptedException {
context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных context.getDriver().get(APP_URL_SEARCH);//Открыта любая страница сайта, кроме специальных
SearchByStudioPage page = PageFactory.initElements(context.getDriver(), SearchByStudioPage.class);//Выбрать пункт меню SearchByStudioPage page = PageFactory.initElements(context.getDriver(), SearchByStudioPage.class);//Выбрать пункт меню
page.insertNameSearch("Disney"); page.insertNameSearch("Disney");
Thread.sleep(1000);
page.enterSearch(); page.enterSearch();
SearchByKeywordResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница SearchByKeywordResultPage pageResult = PageFactory.initElements(context.getDriver(), SearchByKeywordResultPage.class);//Корректно отображена выбранная страница
Assertions.assertTrue(pageResult.isNewsElementPresent()); Assertions.assertTrue(pageResult.isFirstResultElementPresent("Disney"));
} }
} }

View File

@ -10,10 +10,24 @@ public class SearchByCreatorsResultPage {
@FindBy(css = ".search_adv") @FindBy(css = ".search_adv")
private WebElement resultCreatorsElement; private WebElement resultCreatorsElement;
@FindBy(xpath = "//a[@href='/film/brigada-2002-77039/sr/1/']")
private WebElement firstResultCreatorsElement;
@FindBy(xpath = "//a[@href='/film/garri-potter-i-filosofskiy-kamen-2001-689/sr/1/']")
private WebElement firstResultByWordElement;
public SearchByCreatorsResultPage(WebDriver driver) { public SearchByCreatorsResultPage(WebDriver driver) {
this.driver = driver; this.driver = driver;
} }
public boolean isFirstResultByWordPresent() {
return firstResultByWordElement.isDisplayed();
}
public boolean isFirstResultCreatorsPresent() {
return firstResultCreatorsElement.isDisplayed();
}
public boolean isResultCreatorsPresent() { public boolean isResultCreatorsPresent() {
return resultCreatorsElement.isDisplayed(); return resultCreatorsElement.isDisplayed();
} }

View File

@ -10,10 +10,17 @@ public class SearchByKeywordResultPage {
@FindBy(css = ".news") @FindBy(css = ".news")
private WebElement newsElement; private WebElement newsElement;
@FindBy(css = ".all")
private WebElement firstResultElement;
public SearchByKeywordResultPage(WebDriver driver) { public SearchByKeywordResultPage(WebDriver driver) {
this.driver = driver; this.driver = driver;
} }
public boolean isFirstResultElementPresent(String str) {
return firstResultElement.getText().toLowerCase().contains(str.toLowerCase());
}
public boolean isNewsElementPresent() { public boolean isNewsElementPresent() {
return newsElement.isDisplayed(); return newsElement.isDisplayed();
} }

View File

@ -10,10 +10,31 @@ public class SearchExtendedResultPage {
@FindBy(css = ".search_results_top") @FindBy(css = ".search_results_top")
private WebElement resultTopElement; private WebElement resultTopElement;
@FindBy(xpath = "//a[@href='/film/koma-2018-933208/sr/1/']")
private WebElement firstResultElement;
@FindBy(xpath = "//a[@href='/name/224620/sr/1/']")
private WebElement actorResultElement;
@FindBy(css = ".gray")
private WebElement usersResultElement;
public SearchExtendedResultPage(WebDriver driver) { public SearchExtendedResultPage(WebDriver driver) {
this.driver = driver; this.driver = driver;
} }
public boolean isUsersResultElementPresent(String str) {
return usersResultElement.getText().contains(str);
}
public boolean isActorResultElementPresent() {
return actorResultElement.isDisplayed();
}
public boolean isFirstResultElementPresent() {
return firstResultElement.isDisplayed();
}
public boolean isResultTopElementPresent() { public boolean isResultTopElementPresent() {
return resultTopElement.isDisplayed(); return resultTopElement.isDisplayed();
} }

View File

@ -10,10 +10,18 @@ public class SearchInTextResultPage {
@FindBy(css = ".textorangebig") @FindBy(css = ".textorangebig")
private WebElement headerElement; private WebElement headerElement;
@FindBy(css = ".news")
private WebElement newsElement;
public SearchInTextResultPage(WebDriver driver) { public SearchInTextResultPage(WebDriver driver) {
this.driver = driver; this.driver = driver;
} }
public String getNewsElementToString(){
return newsElement.getText();
}
public boolean isHeaderElementPresent() { public boolean isHeaderElementPresent() {
return headerElement.isDisplayed(); return headerElement.isDisplayed();
} }