Если вам приходилось писать тесты для веб-интерфейсов, вы наверняка знакомы с паттерном проектирования PageObject. Несмотря на популярность и широкое распространение, он имеет серьезные недостатки. В докладе обсуждаются эти недостатки и предлагаются решения озвученных проблем.
9. public class HomePageTest {!
!@Test!
!public void testSearchResults() {!
! !WebDriver driver = new FirefoxDriver();!
!
! !driver.get(“http://market.yandex.ru/”);!
! !driver.findElement(By.css(“input#search-input”))!
! ! !.sendKeys(“чикипибарум”);!
! !driver.findElement(By.css(“td.b-search__button”))!
! ! !.click();!
!
! !assertThat(“Не найдено что ничего не найдено”,!
! !driver.findElement(By.css(“p.no-found”)).getText(),!
! !is(“Заданным условиям не соответствует ни один товар”));!
!}!
9
10. public class HomePageTest {!
!@Test!
!public void testSearchResults() {!
! !WebDriver driver = new FirefoxDriver();!
!
! !driver.get(“http://market.yandex.ru/”);!
! !driver.findElement(By.css(“input#search-input”))!
! ! !.sendKeys(“чикипибарум”);!
! !driver.findElement(By.css(“td.b-search__button”))!
! ! !.click();!
!
! !assertThat(“Не найдено что ничего не найдено”,!
! !driver.findElement(By.css(“p.no-found”)).getText(),!
! !is(“Заданным условиям не соответствует ни один товар”));!
!}!
10
11. public class HomePageTest {!
!@Test!
!public void testSearchResults() {!
! !WebDriver driver = new FirefoxDriver();!
!
! !driver.get(“http://market.yandex.ru/”);!
! !driver.findElement(By.css(“input#search-input”))!
! ! !.sendKeys(“чикипибарум”);!
! !driver.findElement(By.css(“td.b-search__button”))!
! ! !.click();!
!
! !assertThat(“Не найдено что ничего не найдено”,!
! !driver.findElement(By.css(“p.no-found”)).getText(),!
! !is(“Заданным условиям не соответствует ни один товар”));!
!}!
11
12. public class HomePageTest {!
!@Test!
!public void testSearchResults() {!
! !WebDriver driver = new FirefoxDriver();!
!
! !driver.get(“http://market.yandex.ru/”);!
! !driver.findElement(By.css(“input#search-input”))!
! ! !.sendKeys(“чикипибарум”);!
! !driver.findElement(By.css(“td.b-search__button”))!
! ! !.click();!
!
! !assertThat(“Не найдено что ничего не найдено”,!
! !driver.findElement(By.css(“p.no-found”)).getText(),!
! !is(“Заданным условиям не соответствует ни один товар”));!
!}!
12
13. public class HomePageTest {!
!@Test!
!public void testSearchResults() {!
! !WebDriver driver = new FirefoxDriver();!
!
! !driver.get(“http://market.yandex.ru/”);!
! !driver.findElement(By.css(“input#search-input”))!
! ! !.sendKeys(“чикипибарум”);!
! !driver.findElement(By.css(“td.b-search__button”))!
! ! !.click();!
!
! !assertThat(“Не найдено что ничего не найдено”,!
! !driver.findElement(By.css(“p.no-found”)).getText(),!
! !is(“Заданным условиям не соответствует ни один товар”));!
!}!
13
14. public class HomePageTest {!
!@Test!
!public void testSearchResults() {!
! !WebDriver driver = new FirefoxDriver();!
!
! !driver.get(“http://market.yandex.ru/”);!
! !driver.findElement(By.css(“input#search-input”))!
! ! !.sendKeys(“чикипибарум”);!
! !driver.findElement(By.css(“td.b-search__button”))!
! ! !.click();!
!
! !assertThat(“Не найдено что ничего не найдено”,!
! !driver.findElement(By.css(“p.no-found”)).getText(),!
! !is(“Заданным условиям не соответствует ни один товар”));!
!}!
14