Page Object Model

Draft

Зачем нужен Page Object Model, где он действительно помогает и почему сам по себе не спасает от плохого UI automation.

Содержание

Page Object Model помогает отделять детали UI от тестовой логики. Его ценность не в модном названии, а в том, что он снижает связность тестов с DOM и делает сценарии более читаемыми.

Что даёт POM

  • Скрывает селекторы и технические детали страницы.
  • Упрощает поддержку при изменении UI.
  • Делает тестовые сценарии ближе к пользовательским действиям.

Где команды ошибаются

  • Складывают всю логику и все assertions в page objects.
  • Делают page object огромным и неуправляемым.
  • Используют POM как оправдание плохой архитектуры тестов.

POM полезен, когда он уменьшает дублирование и делает тесты яснее. Если он превращается в ещё один хаотичный слой, пользы от него мало.