Cypress ориентируется на современную экосистему фронтенд-разработки и использует реальный браузер для выполнения тестов, что отличает его от множества транспортных движков и эмуляторов. Поддержка браузеров определяется их совместимостью с технической базой Cypress, энергетикой Chromium и механизмами WebKit/Firefox, а также возможностью корректной интеграции DevTools Protocol.
Chromium-браузеры. Наиболее полно поддерживаемая группа. В неё входят Chrome, Chromium и Edge (новые версии на базе Chromium). Эта поддержка обеспечивает доступ к расширенному протоколу DevTools, детализированной трассировке сетевых запросов и стабильным средствам управления вкладками. Cypress способен взаимодействовать с технологиями рендеринга и исполнения JavaScript так же, как это делает пользователь, что важно при проверке сложных SPA-приложений.
Firefox. Поддержка Firefox основана на реализации интерфейсов WebDriver и дополнительных мостов, позволяющих выполнять команды Cypress через движок Gecko. Развитие этой интеграции идёт постепенно; в актуальных версиях тесты на Firefox включают основные сценарии пользовательских действий и проверку DOM, однако некоторые низкоуровневые возможности DevTools могут быть ограничены.
WebKit (Safari). Нативный Safari на macOS и iOS исторически сложнее интегрируется из-за закрытости и отличий WebKit. Cypress использует промежуточные механизмы в сочетании с WebKit-портами (например, через Playwright-совместимые каналы) для обеспечения запуска тестов в соответствующей среде. Поддержка охватывает ключевые пользовательские действия и визуальный рендеринг, но может уступать Chromium-линейке по глубине инспекции.
Поддерживаемые версии определяются текущей стабильной сборкой Cypress и выходящими релизами браузеров. Для Chromium-семейства фокус делается на последних стабильных версиях, поскольку большинство API DevTools развивается быстро и тесно связано с обновлениями браузера. Firefox и WebKit могут иметь более узкий диапазон совместимых версий, что фиксируется в релизных заметках Cypress и матрицах совместимости CI.
Cypress позволяет указывать целевой браузер при старте тестов либо через интерфейс, либо параметрами командной строки. При выборе браузера учитывается его тип (headed/headless), наличие необходимых бинарных файлов и доступ к профилю. Headless-режим особенно важен для CI, так как существенно уменьшает накладные расходы и облегчает параллельный прогон.
Инъекция в страницу. Cypress внедряет собственный рантайм в тестируемую страницу, что требует предсказуемого окружения браузера. В некоторых браузерах вмешательство может ограничиваться политиками безопасности или особенностями движка, что отражается на поддержке.
Расширенные протоколы. Для глубокого анализа сетевых запросов, перехвата XHR/Fetch и мокинга ответов необходим доступ к низкоуровневым протоколам. Chromium обеспечивает наиболее полный набор функций; Firefox и WebKit могут предоставлять ограниченные возможности, что на практике влияет на сложные тестовые сценарии.
Плагины и настройки. Некоторые Cypress-плагины ориентированы на DevTools и, как следствие, требуют Chromium-платформы. При использовании нестандартных плагинов важно учитывать, что их функциональность может отсутствовать в Firefox или WebKit.
Реализация прогонов в CI обычно использует headless-сборки Chrome или Chromium, поскольку они доступны на большинстве Linux-окружений и обеспечивают высокую скорость. Firefox headless поддерживается, но может работать медленнее из-за особенностей движка и взаимодействия с Cypress. WebKit-окружения для CI требуют дополнительных зависимостей и чаще встречаются в macOS-пунктах сборки.
Для широких регрессионных прогонов и сценариев с интенсивным сетевым взаимодействием предпочтительно Chromium-семейство благодаря стабильности протоколов и оперативной поддержке. Firefox полезен для покрытия специфики Gecko-рендеринга, что помогает выявлять проблемы совместимости. WebKit целесообразен там, где важна корректность работы под Safari, особенно для приложений, рассчитанных на macOS и iOS.
Модель развития Cypress подразумевает непрерывное расширение поддержки браузеров по мере открытия протоколов, появления новых механик в DevTools и улучшения совместимости движков. Матрица поддерживаемых браузеров сохраняет гибкость: устаревшие версии выводятся из обращения в силу технических ограничений, новые версии добавляются быстро, особенно в Chromium-семействе. Такой подход позволяет тестовым окружениям соответствовать актуальному фронтенд-ландшафту без лишних компромиссов.