Chrome DevTools — это встроенный инструмент браузера для анализа и отладки веб-приложений. При тестировании с Cypress DevTools играет ключевую роль, так как позволяет отслеживать поведение элементов, проверять сетевые запросы, анализировать производительность и выявлять проблемы с тестами.
В Chrome DevTools доступны несколько основных панелей:
cy.log() и сообщения об ошибках.В контексте Cypress чаще всего используется комбинация Elements, Console и Network, так как они дают полное представление о DOM, логах и сетевых взаимодействиях.
Cypress активно использует селекторы для работы с элементами. DevTools помогает корректно их определять:
document.querySelectorAll('selector') и
убедиться, что селектор возвращает нужный элемент.data-cy,
data-test) для стабильности тестов.Пример использования в Cypress:
cy.get('[data-cy=login-button]').click();
Использование DevTools позволяет подтвердить, что селектор уникален и корректно соответствует элементу.
В панели Network можно увидеть все XHR и fetch-запросы, что особенно важно при интеграционном тестировании:
cy.intercept('GET', '/api/users').as('getUsers');
cy.visit('/users');
cy.wait('@getUsers').its('response.statusCode').should('eq', 200);
Console позволяет выводить сообщения и проверять значения переменных во время выполнения тестов:
cy.log() для отладки шагов теста.debugger:cy.get('[data-cy=login-button]').then(($btn) => {
debugger;
expect($btn).to.exist;
});
При достижении debugger выполнение теста
приостанавливается, и можно пошагово анализировать состояние DOM и
переменных в панели Sources.
Хотя Cypress больше ориентирован на функциональное тестирование, иногда требуется анализировать производительность страницы:
DevTools дает возможность изменять DOM и состояние элементов без изменения исходного кода, что полезно при подготовке тестовых сценариев:
click или
input, через консоль:document.querySelector('[data-cy=username]').value = 'testuser';
document.querySelector('[data-cy=submit]').click();
Это позволяет протестировать реакцию приложения на нестандартные входные данные и проверить обработку ошибок.
Cypress автоматически открывает DevTools при запуске тестов через браузер Chrome, что позволяет:
cy.pause() для временной остановки теста и
анализа состояния страницы в DevTools.Использование DevTools вместе с Cypress повышает точность тестирования, облегчает отладку и позволяет создавать более стабильные и надежные автоматизированные тесты.