Шаблон объекта страницы с TestNG

Я новичок в программировании и автоматизации Java Selenium WebDriver.

Может ли кто-нибудь объяснить шаблон объекта страницы на примере.


person user3241182    schedule 23.02.2014    source источник
comment
stackoverflow .com/questions/18094238/   -  person Erki M.    schedule 23.02.2014


Ответы (2)


Шаблон PageObject представляет экраны (страницы) вашего веб-приложения в виде набора объектов (классов Java). Эти объекты называются «PageObjects».

PageObject не обязательно должен представлять всю страницу. Он может представлять собой раздел, который появляется много раз на сайте или странице, например навигация по сайту. Основной принцип заключается в том, что в вашем наборе тестов есть только одно место, знающее структуру HTML конкретной (части) страницы.

Например, вместо такого тестового метода:

@Test()
public void test() {
    driver.get("http://www.mysite.com");
    WebElement username = driver.findElement(By.id("user"));
    username.sendKeys("admin");
    WebElement password = driver.findElement(By.id("pass"));
    password.sendKeys("admin");
    WebElement login = driver.findElement(By.id("login"));
    login.click();
    // ...
}

где вы будете переопределять имя пользователя, пароль и логин WebElements, если вам нужно создать еще один тест для страницы входа, вы можете использовать PageObject для представления страницы входа следующим образом:

public class LoginPage {
public HomePage loginAs(String username, String password) {
    WebElement username = driver.findElement(By.id("user"));
    username.sendKeys("admin");
    WebElement password = driver.findElement(By.id("pass"));
    password.sendKeys("admin");
    WebElement login = driver.findElement(By.id("login"));
    login.click();
    return new HomePage();
}

а затем, из вашего теста:

@Test()
public void test() {
    driver.get("http://www.mysite.com");
    LoginPage loginPage = new LoginPage();
    HomePage homePage = loginPage.loginAs("admin", "admin");
    // ...
}

В любом случае, я бы порекомендовал вам ознакомиться с официальной документацией по PageObjects и также читайте о PageFactory.

Надеюсь это поможет ;)

person Marcos    schedule 26.02.2014