В UI‑автотестах часто встречается ситуация: Если пытаться решать это “в лоб” в Page Object, он быстро превращается в набор ветвлений: Потом таких мест становится десятки — и поддержка деградирует. Паттерн variant handlers (или просто handlers) решает именно это: он выделяет слой, который подбирает реализацию под конкретный шаблон страницы и даёт тестам единый интерфейс действий. Подписывайтесь на мой канал в Телеграмм, чтобы ничего не пропустить. Ну или на канал в VK, если хотите видеть новые статьи у себя в ленте. Ты разделяешь сущности на три слоя: 1) Контракт страницы — что тест хочет сделать (в терминах сценария), без привязки к конкретной вёрстке
Примеры: 2) Handlers (варианты) — как именно это сделать для каждого шаблона
Примеры: 3) Resolver (диспетчер) — выбирает подходящий handler по “якорям” (признакам) текущей отрисовки По сути это комбинация: Page Object хорошо отвечает на “где что находится”, но страдает, когда: Handlers позволяют Page Object остаться “тонким”: он делегиру