Playwright или браузерные агенты? Где скриптовая автоматизация по-прежнему имеет преимущество.
Сценарии Playwright против браузерных агентов на основе MCP: хрупкость, детерминизм и затраты, одна задача по оформлению счета выполняется обеими способами, риски для безопасности и ситуации, когда тот или иной метод оказывается преимущественным.
Источники: Playwright vs WebMCP: Will Browser Automation Survive the Agent Era?
Веб был создан для того, чтобы люди кликали по ссылкам и читали страницы. Selenium, Puppeteer и Playwright позволяют коду выполнять эти действия. Более десяти лет автоматизация браузеров подразумевала написание скриптов, подробное описание каждого шага и их многократную перезапуск. Теперь искусственные интеллектуальные агенты меняют эту ситуацию. Они способны рассуждать, планировать и действовать, а также просматривать страницы так же, как человек: рассматривать их, понимать содержимое и решать, что делать дальше. Это поднимает важный вопрос: делает ли Протокол контекста модели (MCP) скриптовую автоматизацию устаревшей или Playwright по-прежнему сохраняет своё место?
Почему разработчикам нравится Playwright
Playwright от Microsoft — это современная платформа для автоматизации браузеров. Код, написанный с её использованием, заставляет Chromium, Firefox или WebKit кликать по кнопкам, заполнять формы, собирать данные и выполнять тесты от начала до конца. Вот небольшой пример:
const { chromium } = require('playwright');
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com/login');
await page.fill('#email', 'user@example.com');
await page.fill('#password', 'secret');
await page.click('button[type="submit"]');
await page.waitForURL('**/dashboard');
console.log('Logged in!');
await browser.close();
Результат получается чистым, детерминированным и предсказуемым. Обычные причины его популярности:
- Поддержка различных браузеров встроена изначально.
- Изоляция тестов и их параллельное выполнение очень надежны.
- Функция автоматического ожидания устраняет необходимость в старых методах вроде
sleep(2000). - Включены возможности трассировки, сделки скриншотов и записи видео.
- Он легко интегрируется в пайплайны CI/CD.
Для автоматизации тестирования качества, тестирования регрессии и скриптованных веб-процессов он является эталоном.
Где скрипты мешают
Недостаток заключается в хрупкости. Если изменить класс CSS кнопки, скрипт перестаёт работать. Если переместить поле формы, он тоже перестаёт работать. Даже при внедрении варианта A/B с новым макетом возникают проблемы. Каждый скрипт представляет собой жёстко заданную карту предположений о том, как выглядела страница в определённый момент, в то время как интерфейсы постоянно меняются. Поддержка крупной сборки инструментов Playwright в компании с быстрыми темпами развития может превратиться в вторую полную занятость.
Аналогия поможет понять ситуацию. Скрипт — это ламинированная карта с указаниями движения по городу. Она работает до тех пор, пока дорога не закроется, здание не будет перенесено или не появится односторонняя дорога. Лучший навигатор оглядится по сторонам, прочитает дорожные знаки и будет принимать решения на лету.
Что добавляет MCP
MCP, представленный компанией Anthropic в конце 2024 года, — это открытый стандарт для структурированного подключения ИИ-моделей, таких как Claude, к внешним инструментам, источникам данных и средам. Он функционирует как универсальная система плагинов для агентов. Вместо того чтобы находиться внутри окна чата, модель может обращаться к базам данных, API, файловым системам и веб-браузерам.
Сейчас существует сервер Playwright MCP, который предоставляет возможность использовать действия браузера в виде функций, которые могут вызываться агентами. Раньше разработчикам приходилось писать код примерно вот так:
await page.click('#submit-button');
Вместо этого агент получает цель:
"Submit the contact form on acme.com with the user's name and email"
Оттуда он навигирует, находит элементы и взаимодействует с страницей с помощью зрения, парсинга HTML и логических рассуждений, причем нигде не используются жестко заданные селекторы.
Сравнение
Playwright — традиционный подход
- Контроль: разработчик заполняет каждый шаг.
- Селекторы: CSS, XPath или текст.
- Устойчивость к изменениям интерфейса: перестает работать при изменениях интерфейса.
- Настройка: умеренная, так как требуется код.
- Детерминизм: полностью детерминированный.
- Отладка: простая, с логами и скриншотами.
- Скорость: высокая.
- Затраты: только вычислительные.
- Лучше всего подходит: для тестов на регрессию и пайплайнов CI/CD.
- Надежность: высокая при правильном обслуживании.
WebMCP или Playwright MCP — подход с агентом
- Контроль: ИИ-агент проводит логические рассуждения и принимает решения.
- Селекторы: естественный язык в сочетании с визуальным пониманием.
- Устойчивость к изменениям интерфейса: адаптируется путем повторного анализа текущего DOM.
- Настройка: низкая, поскольку достаточно описать цель.
- Детерминизм: недетерминистичный, так как задействован процесс рассуждения больших языковых моделей.
- Отладка: сложнее, поскольку возникает вопрос о том, почему агент выбрал именно эту действие.
- Скорость: медленнее из-за дополнительных затрат на обработку данных большой языковой модели.
- Затраты: вычислительные ресурсы плюс токены API большой языковой модели.
- Идеально для: динамических задач, сложных рабочих процессов и агентов.
- Надежность: улучшается, но еще не достигла уровня, необходимого для промышленного использования.
Одна задача, два метода
Задача: войти в панель управления SaaS, найти самый свежий счет-фактуру и скачать его в формате PDF.
С помощью Playwright скрипт переходит на страницу входа, заполняет поля электронной почты и пароля с помощью селекторов data-testid, нажимает кнопку входа и последовательно выполняет остальные действия.
await page.goto('https://app.saas.com/login');
await page.fill('[data-testid="email"]', credentials.email);
await page.fill('[data-testid="password"]', credentials.password);
await page.click('[data-testid="login-btn"]');
await page.waitForSelector('.dashboard');
await page.click('nav >> text=Billing');
await page.click('.invoice-list tr:first-child .download-btn');
await page.waitForEvent('download');
Подумайте, что произойдёт, если при рефакторинге будет изменено название атрибута data-testid, если навигация по счётам переместится в боковую панель или если таблица счетов будет отображаться с другой пагинацией.
С агентом инструкция формулируется простыми словами как конкретная цель:
Goal: "Go to app.saas.com, log in with my credentials,
navigate to billing, find the most recent invoice,
and download it as a PDF."
Агент загружает страницу, анализирует DOM и визуальную структуру, находит форму входа по её назначению, вводит учетные данные и отправляет заявку, ищет элементы навигации с надписями «Учетная оплата», «Счета-фактуры» или аналогичными, находит самый свежий счет-фактуру по дате и нажимает «Скачать». Если интерфейс меняется, агент перечитывает страницу и адаптируется. Обновления скриптов не требуются.
От скриптинга к указаниям
Традиционная автоматизация определяет, какие именно действия должен выполнить компьютер. Автоматизация в эпоху агентов спрашивает, какого результата требуется, и может ли ИИ найти необходимые шаги. Другими словами, скриптинг программирует путь, тогда как указания программируют конечную цель.
Для простых, стабильных задач с большим объемом работы, таких как 10 000 тестов на регрессию в системе CI, детерминизм Playwright всегда оказывается преимуществом. В то время как для сложных, изменчивых одноразовых рабочих процессов, которые обычно выполняет человек-ассистент, браузерные агенты, управляемые через MCP, демонстрируют преимущество.
Инструменты, представленные здесь
Экосистема быстро развивается:
- Playwright MCP — официальный сервер MCP, предоставляющий возможность использования функций браузера Playwright для ИИ-агентов.
- Stagehand от Browserbase — автоматизация, основанная на ИИ, сочетающая Playwright с возможностями визуального анализа от LLM.
- Browser Use — фреймворк с открытым исходным кодом для агентов веб-браузинга.
- Claude Computer Use — система от Anthropic, способная видеть и управлять всем рабочим столом или браузером.
- OpenAI Operator — агент на базе GPT-4o, который выполняет задачи путем просмотра веб-страниц.
- Skyvern — автоматизация, основанная на визуальном анализе и LLM, не требующая использования селекторов.
Это не просто игрушки. Компании применяют их для работы с процессами закупок, извлечения данных, отправки форм и мониторинга конкурентов — задач, которые в противном случае потребовали бы месяцев написания скриптов.
Исчезнет ли Playwright?
Нет, хотя его роль меняется. Он по-прежнему необходим, но уже не является единственным инструментом в арсенале. Он похож на SQL: основополагающий, точный и незаменимый для структурированной работы, но уже не единственный способ получения ответов. В будущем для разных задач будут использоваться оба подхода.
Выбор между ними
Решение принимается с помощью диаграммы потоков. Сначала нужно определить, хорошо ли сформулирована задача и существует ли стабильный интерфейс. Если да, и задача выполняется многократно в крупном масштабе, например в процессах CI или тестирования регрессии, то решением будут скрипты. Если интерфейс меняется или задача одноразовая, более подходящим вариантом будет агент.
Is the task well-defined with a stable UI?
│
├── YES → Does it run repeatedly at scale (CI/CD, regression)?
│ │
│ ├── YES → Use Playwright
│ └── NO → Either works; Playwright is cheaper
│
└── NO → Is the UI dynamic, unknown, or frequently changing?
│
├── YES → Use MCP Agent / AI Browser
└── NO → Does it require multi-step reasoning?
│
├── YES → Use MCP Agent
└── NO → Use Playwright
Следующие два года
Агенты не исчезнут сразу, заменив скриптовую автоматизацию, но уже сейчас видны определённые тенденции.
- Гибридные пайплайны становятся нормой. Playwright обрабатывает 80% задач, которые стабильны и повторяются, в то время как агент MCP берёт на себя 20% непредсказуемых ситуаций, которые нарушают работу скриптов при каждом цикле разработки.
- Playwright получает функции ИИ. Ожидается появление возможности восстановления селекторов: при сбое селектора система будет запрашивать у большой языковой модели помощи в поиске эквивалентного элемента на обновлённой странице. Healenium и Reflect уже реализуют что-то подобное, и встроенная поддержка таких функций в Playwright кажется вполне вероятной.
- Надёжность агентов улучшается. Современные агенты иногда неправильно интерпретируют страницу, нажимают на неверный элемент или терпят сбои из-за всплывающих окон. Более совершенные мультимодальные модели, такие как GPT-4o, Claude 3.5 Sonnet и Gemini 2.0, должны значительно сократить количество таких сбоев.
- QA претерпевает изменения. Вместо написания скриптов Playwright тестировщики будут формулировать свои цели на естественном языке, позволяя агентам интерпретировать и выполнять их, тем самым переходя от написания скриптов к указанию желаемых результатов.
- Безопасность становится актуальной проблемой. Агент с автономным контролем над браузером может нажать на что-то непреднамеренное, отправить форму с неверными данными или быть манипулированным вредоносной страницей. Вставка команд через веб-контент, когда страница заставляет агента выполнять нежелательные действия, уже считается задокументированной угрозой. Именно здесь заключается главное преимущество Playwright: он выполняет ровно то, что указано в скрипте, и ничего больше.
Более широкая картина
В течение десяти лет автоматизация браузеров представляла собой проблему перевода: необходимо было преобразовать человеческие намерения в код, имитирующий действия человека. Playwright прекрасно решил эту проблему. Теперь агенты устраняют этот этап перевода, поскольку достаточно простого описания намерений на обычном языке, а агент берет на себя остальное. Это не делает Playwright устаревшим — оно становится более специализированным, подобно тому как хирург продолжает использовать скальпель в эпоху роботизированной хирургии. Скальпель обеспечивает точность, контроль и надежность, а робот — возможность справляться с сложностью, адаптивность и масштаб. Практический вопрос теперь не в том, Playwright или MCP, а в том, когда нужен скальпель, а когда — робот.
Связанные статьи
- Объяснение WebMCP: предоставление инструментов для ИИ-агентов в браузерах вместо угадывания — WebMCP позволяет веб-страницам указывать инструменты для ИИ-агентов. Как их регистрировать, оценивать риски, тестировать в Chrome и обеспечивать безопасность, а также каков уровень поддержки браузерами в 2026 году.
- Hyperbrowser MCP в производстве: иерархии обработки запросов, механизмы передачи данных и защитные меры — Что предоставляет Hyperbrowser MCP для браузерных агентов, в чём недостатки его стандартных решений на основе HTTP и SSE, а также какие политики, системы утверждения и контроль профилей всё ещё необходимы.