Я столкнулся с проблемой, из-за которой события onClick, прикрепленные к кнопкам в моем приложении Next.js, не всегда запускаются во время Playwright E2E. тесты.
Гипотеза:
Проблема, по-видимому, возникает потому, что Playwright взаимодействует с кнопкой до того, как React полностью гидратирует страницу, то есть JavaScript, ответственный за прикрепление обработчик onClick еще не выполнен.
Подробности:
Вот пример одного из моих тестов:< /p>
Код: Выделить всё
test('Navigate from list to details', async ({ page }) => {
await page.goto('/list');
await expect(page.getByTestId('list-container')).toBeVisible();
await page.getByTestId('list-item').first().locator('button').click();
await expect(page.getByTestId('details-container')).toBeVisible();
});
Что я пробовал:
[*]Использование `page.waitForLoadState('networkidle'), но это не всегда работало, и это также не рекомендуется в документации Playwright.
[*]Ожидание конкретного элемента с помощью page.waitForSelector(), но поскольку элемент визуализируется сервером, это не решает проблему.
[*]Добавление явной задержки с помощью page.waitForTimeout(), но это также не рекомендуется.
Подробнее здесь: https://stackoverflow.com/questions/793 ... pplication
Мобильная версия