HtmlElements - естественное расширение PageObject
- 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
- 15. 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(“Заданным условиям не соответствует ни один товар”));
! }
15
- 22. public class HomePage extends PageObject {
! private WebDriver driver;
! @FindBy(css = “input#search-input”)
! private WebElement searchInput;
! @FindBy(css = “td.b-search__button”)
! private WebElement searchButton;
! public HomePage(WebDriver driver) {
! ! return PageFactory.initElements(driver, this.class);
! }
……
22
- 23. public class HomePage extends PageObject {
! private WebDriver driver;
! @FindBy(css = “input#search-input”)
! private WebElement searchInput;
! @FindBy(css = “td.b-search__button”)
! private WebElement searchButton;
! public HomePage(WebDriver driver) {
! ! return PageFactory.initElements(driver, this.class);
! }
……
23
- 24. public class HomePage extends PageObject {
! private WebDriver driver;
! @FindBy(css = “input#search-input”)
! private WebElement searchInput;
! @FindBy(css = “td.b-search__button”)
! private WebElement searchButton;
! public HomePage(WebDriver driver) {
! ! return PageFactory.initElements(driver, this.class);
! }
……
24
- 25. public class HomePage extends PageObject {
! private WebDriver driver;
! @FindBy(css = “input#search-input”)
! private WebElement searchInput;
! @FindBy(css = “td.b-search__button”)
! private WebElement searchButton;
! public HomePage(WebDriver driver) {
! ! return PageFactory.initElements(driver, this.class);
! }
……
25
- 26. public class HomePage extends PageObject {
! ……
! public SearchResultsPage lookFor(String item) {
! ! searchInput.type(item);
! ! searchButton.click();
! ! return new SearchResultsPage(driver);
! }
! public CatalogModelsPage clickOnElectronicLink() {
! ! electronikLink.click();
! ! return new CatalogModelsPage(driver);
! }
……!
26
- 27. public class HomePage extends PageObject {
! ……
! public SearchResultsPage lookFor(String item) {
! ! searchInput.type(item);
! ! searchButton.click();
! ! return new SearchResultsPage(driver);
! }
! public CatalogModelsPage clickOnElectronicLink() {
! ! electronikLink.click();
! ! return new CatalogModelsPage(driver);
! }
……!
27
- 28. public class HomePage extends PageObject {
! ……
! public SearchResultsPage lookFor(String item) {
! ! searchInput.type(item);
! ! searchButton.click();
! ! return new SearchResultsPage(driver);
! }
! public CatalogModelsPage clickOnElectronicLink() {
! ! electronikLink.click();
! ! return new CatalogModelsPage(driver);
! }
……!
28
- 29. HomePage onHomePage;
SearchResultsPage onResultsPage;
@Test
public void canSearch() {
! onHomePage = new HomePage(driver).open();
! onResultsPage = onHomePage.lookFor(“чикипибарум”);
assertThat(onResultsPage.errorMessage(), ! !
! is(“Заданным условиям не соответствует ни один товар.”));
}
29
- 30. HomePage onHomePage;
SearchResultsPage onResultsPage;
@Test
public void canSearch() {
! onHomePage = new HomePage(driver).open();
! onResultsPage = onHomePage.lookFor(“чикипибарум”);
assertThat(onResultsPage.errorMessage(), ! !
! is(“Заданным условиям не соответствует ни один товар.”));
}
30
- 31. HomePage onHomePage;
SearchResultsPage onResultsPage;
@Test
public void canSearch() {
! onHomePage = new HomePage(driver).open();
! onResultsPage = onHomePage.lookFor(“чикипибарум”);
assertThat(onResultsPage.errorMessage(), ! !
! is(“Заданным условиям не соответствует ни один товар.”));
}
31
- 37. public class HomePage extends PageObject {
! @FindBy(css = “input#search-input”)
! private WebElement searchInput;
! @FindBy(css = “td.b-search__button”)
! private WebElement searchButton;
37
- 55. @Block(@FindBy(…))
public class SearchArrow extends HtmlElement {
! ! @FindBy(…)
! ! private WebElement searchInput;
! ! @FindBy(…)
! ! private WebElement searchButton;
}
55
- 56. @Block(@FindBy(…))
public class SearchArrow extends HtmlElement {
! ! @FindBy(…)
! ! private WebElement searchInput;
! ! @FindBy(…)
! ! private WebElement searchButton;
}
56
- 57. @Block(@FindBy(…))
public class SearchArrow extends HtmlElement {
! ! @FindBy(…)
! ! private WebElement searchInput;
! ! @FindBy(…)
! ! private WebElement searchButton;
}
57
- 58. @Block(@FindBy(…))
public class SearchArrow extends HtmlElement {
! ! @FindBy(…)
! ! private WebElement searchInput;
! ! @FindBy(…)
! ! private WebElement searchButton;
}
58
- 60. @Block(@FindBy(…))
public class SearchBlock extends HtmlElement {
! ! private SearchArrow arrow;
! ! private SearchTabs tabs;
}
60
- 62. public class HomePage extends PageObject {
@FindBy(xpath = “//different_locator”)
! ! public SearchArrow arrow;
}
62
- 63. @Block(@FindBy(…))
public class SearchArrow extends HtmlElement {
! ! @FindBy(…)
! ! private WebElement searchInput;
! ! @FindBy(…)
! ! private WebElement searchButton;
}
63
- 65. @Block(@FindBy(…))
public class SearchArrow extends HtmlElement {
! ! @FindBy(…)
! ! private TextInput searchInput;
! ! @FindBy(…)
! ! private Button searchButton;
}
65
- 67. public class Link extends TypifiedElement {
! public Link(WebElement wrappedElement) {
! ! super(wrappedElement)
! }
......
}
67
- 68. public class Link extends TypifiedElement {
......
! public void click() {…}
! public String getReference() {…}
! public String getText(){…}
}
68
- 71. public class Range extends TypifiedElement {
! public Range(WebElement wrappedElement) {
! ! super(wrappedElement)
! }
}
71
- 72. public class Range extends TypifiedElement {
! @FindBy(…)
! WebElement min;
! @FindBy(…)
! WebElement max;
!
! public setRange(int min, int max) {…}
! public setMin(int min) {…}
public setMax(int max) {…}
}
72
- 78. public class HomePage extends PageObject {
…
! @FindBy(css = “div.suggest”)
! private WebElement suggest;
…
78
- 80. @Block(@FindBy(xpath = “div[@class*=‘search__arr’]”))
@Name(“Поисковая стрела”)
public class SearchArrow extends HtmlElement {
! ! @FindBy(xpath = “.//input”)
! ! @Name(“Поисковый запрос”)
! ! private TextInput searchInput;
! ! @FindBy(xpath = “.//input[@type=‘submit’]”)
! ! private Button searchButton;
}
80
- 81. @Block(@FindBy(xpath = “div[@class*=‘search__arr’]”))
@Name(“Поисковая стрела”)
public class SearchArrow extends HtmlElement {
! ! @FindBy(xpath = “.//input”)
! ! @Name(“Поисковый запрос”)
! ! private TextInput searchInput;
! ! @FindBy(xpath = “.//input[@type=‘submit’]”)
! ! private Button searchButton;
}
81
- 86. @FindBy(…)
private WebElement firstSuggest;
assertThat(firstSuggest, hasText(“canon”));
86
- 87. @FindBy(…)
private WebElement firstSuggest;
assertThat(firstSuggest, hasText(“canon”));
87
- 88. @FindBy(…)
private WebElement firstSuggest;
assertThat(firstSuggest, hasText(“canon”));
88
- 89. @FindBy(…)
private List<WebElement> suggest;
assertThat(suggest, hasItem(hasText(“canon”)));
89
- 90. @FindBy(…)
private List<WebElement> suggest;
assertThat(suggest, hasItem(hasText(“canon”)));
90
- 91. @FindBy(…)
private List<WebElement> suggest;
assertThat(suggest, hasItem(hasText(“canon”)));
91
- 92. @FindBy(…)
private List<WebElement> suggest;
assertThat(suggest, hasItem(hasText(“canon”)));
92
- 94. <dependency>
<groupId>
ru.yandex.qatools.htmlelements
</groupId>
<artifactId>
htmlelements-java
</artifactId>
<version>1.9</version>
</dependency>
94
- 99. @FindBy(…)
private List<WebElement> suggest;
assertThat(suggest, hasItem(hasText(“canon”)));
99
- 100. @FindBy(…)
private List<WebElement> suggest;
assertThat(suggest,
withWaitFor(hasItem(hasText(“canon”))));
100