Какой опыт работы с Playwright
Что проверяют
Писали ли вы на Playwright поддерживаемые тесты или только записали сценарий через codegen. Для Python-разработчика это ещё вопрос про связку с pytest и CI. Следом обычно спрашивают, как вы боретесь с нестабильными тестами.
Как отвечать
Опишите стек: плагин pytest-playwright, фикстуры page, context, browser, прогон в Chromium, Firefox и WebKit. Затем механику, которая отличает Playwright от Selenium:
- автоожидание:
click()и другие действия сами ждут, пока элемент станет видимым, стабильным и доступным, ручнойtime.sleepне нужен; - локаторы:
get_by_role,get_by_label,get_by_test_idвместо CSS и XPath, привязанных к вёрстке; - проверки:
expect(locator).to_have_text()повторяет проверку до таймаута (по умолчанию 5 секунд), аassert locator.is_visible()смотрит один раз; - изоляция: новый
BrowserContextна каждый тест, сохранённый логин черезstorage_state, чтобы не проходить форму входа снова; - сеть:
page.route()для подмены ответов API; - отладка:
--tracing retain-on-failureи Trace Viewer, скриншоты и видео при падении; - CI:
playwright install --with-depsв образе, параллельный прогон черезpytest-xdist.
Можно упомянуть async API на случай, когда Playwright нужен не в тестах, а для парсинга или генерации PDF внутри асинхронного сервиса.
Приведите свой пример: сколько тестов, сколько длился прогон, какую нестабильность нашли и как устранили причину. Если опыт только с Selenium, скажите это и объясните, что в Playwright сделали бы иначе.
Где спотыкаются
Пишут assert el.is_visible() вместо expect. Проверка без повтора срабатывает раньше, чем страница дорисовалась, и тест мигает.
Лечат нестабильность через wait_for_timeout и перезапуски упавших тестов, не разбираясь в причине.
Обещают тестировать на Playwright мобильные приложения. Он эмулирует мобильные браузеры по размеру экрана и user agent, но нативные приложения не тестирует, для этого есть Appium.