Що таке POM?
POM – Рage Оbject Мodel – це шаблон дизайну, який широко використовується в автоматизації тестів, що створює сховище об'єктів для елементів вебінтерфейсу.
Модель PageObject – зараз дуже популярний фреймворк для автоматизації тестування, багато компаній працюють з ним через його простоту обслуговування тестів і зниження дублювання коду.
Згідно з цією моделлю для кожної вебсторінки у програмі повинен бути відповідний клас сторінки. Цей клас Page визначає WebElements цієї вебсторінки, а також містить методи Page, які виконують операції з такими WebElements. Назви цих методів слід вказувати відповідно до завдання, яке вони виконують. Вони повинні відповідати діям, які вони виконують, наприклад, метод очікування, поки елемент з'явиться – waitForPaymentScreenDisplay()
Цей клас Page буде шукати всі WebElements на сторінці й також міститиме методи для роботи з ними.
Такий шаблон вперше застосували в проекті WebDriver, який пізніше об'єднався з Selenium.
Головною перевагою моделі є те, що у випадку зміни структури будь-якої сторінки, не потрібно заново складати тести, досить буде змінити код для об'єкта сторінки.
Отож, модель Page Object надає наступні переваги:
- Чіткий поділ між кодом тестів і кодом специфічним для сторінки (таким як локатори)
- Також ця модель дозволяє при змінах в дизайні сторінки - змінювати відповідний код тільки в одному місці.
Переваги POM
- Page Object Patten повідомляє елементи окремо від реалізації тесту. Ця концепція робить код є більш зрозумілим.
- Другою перевагою є те, що незалежність класу об'єктів від реалізації тесту дозволяє використовувати цей репозиторій у різних цілях та з різними для виконання тестами. Наприклад, ми можемо інтегрувати POM із TestNG/JUnit для функціонального тестування, а також із JBehave/Cucumber для приймального тестування.
- Код стає меншим і він більш оптимізований. Його можна повторно використати.
- Методи отримують більш реальні імена та відображають виконану дію на UI, наприклад, gotoHomePage().
- Що таке об'єктна модель сторінки (POM)?
- Навіщо нам потрібна об'єктна модель сторінки?
- Які переваги об’єктної моделі сторінки?
- Як реалізувати об'єктну модель сторінки в селені?
- Як визначити класи Page?
- Як POM рятує в разі частих змін локатора?
Відповіді на всі ці питання ти отримаєш на Мінікурсі: Automation Testing. Selenium + Java + TestNG