В WebdriverIO отладка тестов является неотъемлемой частью процесса автоматизации. Для эффективного выявления и устранения ошибок применяется комбинация встроенных возможностей WebdriverIO, внешних инструментов и стандартных подходов JavaScript.
Одним из базовых способов отслеживания выполнения тестов является
логирование. WebdriverIO поддерживает встроенные логи через
конфигурационный файл wdio.conf.js. Ключевые параметры:
exports.config = {
logLevel: 'info', // уровни: trace | debug | info | warn | error | silent
reporters: ['spec', 'dot'],
}
Использование различных уровней логирования позволяет контролировать объём выводимых данных, избегая перегрузки консоли лишней информацией.
Для быстрого контроля значений переменных и состояния элементов
применяются стандартные console.log,
console.warn и console.error. Например:
it('Проверка кнопки отправки формы', async () => {
const submitBtn = await $('#submit');
console.log('Кнопка отображается:', await submitBtn.isDisplayed());
});
Такая практика позволяет видеть промежуточные значения и состояние DOM без остановки выполнения теста.
debug и browser.pause()WebdriverIO предоставляет возможность приостановки выполнения теста
для детального анализа с помощью browser.pause():
await browser.url('https://example.com');
await browser.pause(5000); // остановка на 5 секунд
Для более гибкой отладки используется метод debug():
await browser.debug();
Этот метод запускает REPL-подобный режим, где можно вручную выполнять команды WebdriverIO, исследовать элементы страницы и проверять состояния переменных в любой момент выполнения теста.
Для анализа визуальных ошибок удобно использовать скриншоты и запись видео выполнения тестов:
await browser.saveScreenshot('./screenshots/test.png');
Скриншоты позволяют фиксировать текущее состояние интерфейса, а при интеграции с сервисами вроде Allure Reporter или Video Recorder становится возможна запись видео всех действий теста для последующего анализа.
WebdriverIO тесно интегрируется с DevTools браузеров. Использование Chrome DevTools Protocol (CDP) расширяет возможности отладки:
Network),Пример включения CDP:
await browser.cdp('Network', 'enable');
browser.on('Network.requestWillBeSent', (params) => {
console.log('Отправлен запрос:', params.request.url);
});
Это позволяет отслеживать асинхронные действия, которые не видны напрямую через DOM.
Тесты WebdriverIO можно запускать через Node.js с поддержкой отладки:
node --inspect-brk ./node_modules/.bin/wdio wdio.conf.js
После этого подключение к процессу через Chrome DevTools или VS Code позволяет:
breakpoints),step over,
step into),debug() использовать для сложных
сценариев, где простое логирование недостаточно.logLevel менять в зависимости от среды:
debug для локальной разработки, info или
warn для CI.Использование этих инструментов позволяет создавать стабильные и предсказуемые тесты, быстро выявлять ошибки и контролировать процесс автоматизации на всех этапах выполнения.