Все, кто занимался UI-автоматизацией, хоть раз страдали от селекторов.
Изменился текст на кнопке — тест падает; DOM обёрнут в ещё один слой — тест падает; дизайнер сдвинул модальное окно — тест падает; мобильный WebView сменил способ рендеринга — тест всё равно падает. В итоге понимаешь, что так называемые «автоматизированные тесты» половину времени тратят на поддержку самих себя.
Именно поэтому web-infra-dev/midscene заслуживает внимания. Это не просто ещё одна обёртка над Playwright, а инструмент, который меняет подход к UI-автоматизации: вместо «найти определённый CSS-селектор» вы просто «описываете, что нужно сделать». Описание репозитория говорит само за себя: AI-powered, vision-driven UI automation for every platform. На момент сбора данных у него около 13,337 звёзд и 1,004 форка, а в GitHub TypeScript Trending он набрал примерно 99 звёзд за один день.
В README функционал описан предельно ясно: вы формулируете цели и шаги на естественном языке, а Midscene планирует действия и управляет интерфейсом; скрипты можно писать на JavaScript SDK или в YAML; для веб-сценариев поддерживается интеграция с Puppeteer и Playwright, а также управление десктопными браузерами через Bridge Mode; для мобильных устройств доступна работа с Android через adb и с iOS-устройствами/эмуляторами через WebDriverAgent.
Ключевая идея не в том, чтобы «полностью отказаться от кода», а в том, чтобы писать его в более стабильных местах.
Традиционная UI-автоматизация фокусируется на элементах: #submit-button, .modal .confirm, data-testid=save. Midscene же ориентирована на намерения: нажать «Сохранить», подтвердить всплывающее окно, проверить, появилось ли на странице сообщение об ошибке. Для часто меняющихся интерфейсов такой подход ближе к человеческим тест-кейсам и лучше подходит в качестве интерфейса для взаимодействия с агентами.
Midscene также предоставляет три типа API: Interaction API для управления интерфейсом; Data Extraction API для извлечения данных из интерфейса и DOM; Utility API, включающий вспомогательные функции вроде aiAssert(), aiLocate(), aiWaitFor(). Кроме того, инструмент предлагает MCP-сервис, который позволяет экспортировать атомарные действия Midscene Agent в виде MCP tools, давая вышестоящим агентам возможность проверять и управлять UI на естественном языке.
Это отлично вписывается в реальный рабочий процесс:
Первый уровень: оставляем детерминированные тесты вроде Playwright для покрытия критических путей. Они быстры, стабильны и идеально подходят для CI.
Второй уровень: используем Midscene для смоук-тестов «часто меняющихся интерфейсов», таких как административные панели, страницы настройки контента или промо-страницы. Здесь DOM меняется регулярно, но шаги ручной проверки остаются относительно неизменными.
Третий уровень: подключаем Midscene MCP к coding agent. После того как фронтенд-разработчик обновляет страницу, агент может самостоятельно открыть её, выполнить действия вроде «войти в систему, перейти на страницу заказов, отфильтровать по статусу, убедиться, что в списке появились данные», а затем на основе скриншотов и результатов проверок решить, нужно ли вносить дальнейшие правки.
Разумеется, визуальное управление — не серебряная пуля. Оно сильнее зависит от стабильности моделей и может работать медленнее, чем тесты на чистых селекторах. Для высоконагруженных или критически важных процессов, таких как платежи, управление правами доступа или удаление данных, по-прежнему необходимо использовать более детерминированные автоматизированные скрипты и ручную проверку в качестве страховки.
Однако тенденция уже очевидна: UI-автоматизация переходит от «машина читает DOM» к «машина понимает интерфейс». Селекторы никуда не денутся, просто им больше не нужно нести на себе всю когнитивную нагрузку.
Если вы хотите протестировать инструмент в команде, начните с самых раздражающих, но наименее рискованных процессов: например, фильтрация в админке, заполнение форм, предпросмотр настроек контента. Эти сценарии часто меняются, требуют частой ручной проверки, а ущерб от ошибок легко контролировать, что делает их идеальными для визуальной автоматизации. После стабилизации можно подумать о подключении части скриптов к CI или передаче их вышестоящим агентам. Не стоит сразу браться за высоконагруженные цепочки вроде платежей, удаления данных или управления правами.
Основной источник: GitHub - web-infra-dev/midscene