Всем привет, меня зовут Сергей Прощаев и в этой статье расскажу про то, что происходит, когда команда переезжает с Selenium на Playwright и по инерции тащит за собой старые привычки. Я Tech Lead и руководитель направления Java | Kotlin разработки в FinTech & E‑commerce, преподаю на курсах разработки и архитектуры в OTUS.
Ситуация, которую я вижу из раза в раз. Команда решает, что Selenium уже тесный: тесты медленные, флакают, поддержка съедает половину спринта. Смотрят на Playwright, читают про авто‑ожидания и параллелизм, заводят зависимость в pom.xml и переписывают первый десяток тестов. А через месяц открывают отчёт CI и видят ровно то же самое: красные прогоны через раз, Thread.sleep расползся по коду, тесты то проходят, то падают в зависимости от нагрузки на раннер.
Playwright тут не виноват. Виновата миграция один в один: люди переносят не тесты, а способ мышления, который сложился за годы работы с WebDriver. Фреймворк поменялся, а модель в голове осталась старая.
Ниже разберу семь таких переносов — тех, что чаще всего прячутся до первого честного прогона на CI. На каждый покажу симптом, причину, что он ломает и как чинится, с кодом, который я реально встречал в проектах. Отдельно скажу: часть примеров специфична именно для Java, потому что здесь у Playwright нет встроенного тест‑раннера с фикстурами, как в JS/TS, и это отдельный источник граблей.