В автоматизации тестирования веб-приложений часто встречаются всплывающие окна — алерты, confirm и prompt. WebdriverIO предоставляет удобные методы для взаимодействия с ними, позволяя как принимать, так и отклонять такие окна, а также получать текст сообщений.
Каждый из этих типов обрабатывается методами WebdriverIO через объект
browser.
1. Получение текста алерта
const alertText = await browser.getAlertText();
console.log(alertText);
Метод возвращает строку с текстом текущего активного алерта. Полезно для проверки сообщений в тестах.
2. Принятие алерта
await browser.acceptAlert();
Подтверждает алерт, что эквивалентно нажатию кнопки «OK». Работает для всех типов алертов.
3. Отклонение алерта
await browser.dismissAlert();
Закрывает алерт, как будто нажата кнопка «Cancel». Применимо к confirm и prompt.
4. Ввод текста в prompt
await browser.sendAlertText('Тестовое сообщение');
await browser.acceptAlert();
Метод sendAlertText позволяет передать строку в поле
ввода prompt, после чего алерт можно принять или отклонить.
Для того чтобы убедиться, что алерт появился перед выполнением действий с ним, используется проверка с обработкой исключений:
let isAlertOpen = false;
try {
await browser.getAlertText();
isAlertOpen = true;
} catch (e) {
isAlertOpen = false;
}
if (isAlertOpen) {
await browser.acceptAlert();
}
Такой подход предотвращает ошибки выполнения, если алерт не появился.
await.// Клик по кнопке, вызывающей alert
await $('#triggerAlert').click();
// Проверка текста алерта
const message = await browser.getAlertText();
if (message.includes('подтвердить')) {
await browser.acceptAlert();
} else {
await browser.dismissAlert();
}
// Работа с prompt
await $('#triggerPrompt').click();
await browser.sendAlertText('Тестовые данные');
await browser.acceptAlert();
В этом примере показано условное принятие алерта, получение текста и работа с prompt — ключевые операции для реальных тестовых сценариев.
browser.waitUntil для стабильности тестов.dismissAlert без проверки, чтобы
не пропустить важные уведомления приложения.Работа с алертами в WebdriverIO является фундаментальной частью
тестирования веб-интерфейсов, обеспечивая контроль над всеми
всплывающими окнами и их поведением. Правильное использование методов
getAlertText, acceptAlert,
dismissAlert и sendAlertText позволяет
создавать надежные и предсказуемые тесты.