Выбор ответа Middle Тестирование обновлено
Ожидания в Playwright
Вопрос
E2E-тест в Playwright иногда падает: кнопка ещё не активна, когда по ней кликают. Что правильно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Локатор getByRole(...).click() и expect(locator).toBeEnabled(). Действия Playwright с локаторами ждут, пока элемент станет видимым, стабильным и доступным для клика, а проверки expect(locator) переповторяются.
Варианты ответа
- Добавить
await page.waitForTimeout(3000)перед каждым кликом по кнопке - Локатор
getByRole(...).click()иexpect(locator).toBeEnabled()правильный ответ - Увеличить таймаут всего теста до 5 минут
- Перезапускать тест в CI, пока не пройдёт
Разбор
Действия Playwright с локаторами ждут, пока элемент станет видимым, стабильным и доступным для клика, а проверки expect(locator) переповторяются. Фиксированная пауза либо слишком короткая (тест флакает), либо слишком длинная (тесты медленные).
waitForTimeoutмаскирует проблему и замедляет прогон.- Большой таймаут не устраняет гонку, только дольше ждёт падения.
- Ретраи прячут флаки, причину всё равно нужно найти.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.