Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: user3241182Ответов: 2

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

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

  • stackoverflow .com/questions/18094238/ Erki M. 23.02.2014

javaseleniumselenium-webdrivertestngpageobjects

Ответы

Ответ 1 · рейтинг 2 · Marcos

Шаблон 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.

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

Ответ 2 · рейтинг 1 · Roy Varum

Я думаю, что лучше всего изучить это на примере страницы проекта Selenium в Google Code.

Сначала разберитесь с концепцией: Каждая страница представлена ​​классом, и поэкспериментируйте с простым веб-сайтом, с которым вы уже знакомы.

Например, выберите простой веб-сайт и напишите несколько тестов для проверки процесса входа в систему. Для этого смоделируйте участвующие веб-страницы (например, LoginPage, HomePage) в классах, как указано в шаблоне проектирования Page Objects, и используйте эти объекты в методах тестирования.

Когда вы почувствуете себя достаточно комфортно с этим, вы можете сделать шаг вперед и для сложных веб-страниц смоделировать отдельный класс для разных разделов на одной странице для лучшего повторного использования и меньших затрат на обслуживание.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы