Главная / Статьи

Playwright или браузерные агенты? Где скриптовая автоматизация по-прежнему имеет преимущество.

Сценарии Playwright против браузерных агентов на основе MCP: хрупкость, детерминизм и затраты, одна задача по оформлению счета выполняется обеими способами, риски для безопасности и ситуации, когда тот или иной метод оказывается преимущественным.

Издатель: REACTAPP.TOP8 мин чтения1835 слов

Источники: 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

Следующие два года

Агенты не исчезнут сразу, заменив скриптовую автоматизацию, но уже сейчас видны определённые тенденции.

  1. Гибридные пайплайны становятся нормой. Playwright обрабатывает 80% задач, которые стабильны и повторяются, в то время как агент MCP берёт на себя 20% непредсказуемых ситуаций, которые нарушают работу скриптов при каждом цикле разработки.
  2. Playwright получает функции ИИ. Ожидается появление возможности восстановления селекторов: при сбое селектора система будет запрашивать у большой языковой модели помощи в поиске эквивалентного элемента на обновлённой странице. Healenium и Reflect уже реализуют что-то подобное, и встроенная поддержка таких функций в Playwright кажется вполне вероятной.
  3. Надёжность агентов улучшается. Современные агенты иногда неправильно интерпретируют страницу, нажимают на неверный элемент или терпят сбои из-за всплывающих окон. Более совершенные мультимодальные модели, такие как GPT-4o, Claude 3.5 Sonnet и Gemini 2.0, должны значительно сократить количество таких сбоев.
  4. QA претерпевает изменения. Вместо написания скриптов Playwright тестировщики будут формулировать свои цели на естественном языке, позволяя агентам интерпретировать и выполнять их, тем самым переходя от написания скриптов к указанию желаемых результатов.
  5. Безопасность становится актуальной проблемой. Агент с автономным контролем над браузером может нажать на что-то непреднамеренное, отправить форму с неверными данными или быть манипулированным вредоносной страницей. Вставка команд через веб-контент, когда страница заставляет агента выполнять нежелательные действия, уже считается задокументированной угрозой. Именно здесь заключается главное преимущество Playwright: он выполняет ровно то, что указано в скрипте, и ничего больше.

Более широкая картина

В течение десяти лет автоматизация браузеров представляла собой проблему перевода: необходимо было преобразовать человеческие намерения в код, имитирующий действия человека. Playwright прекрасно решил эту проблему. Теперь агенты устраняют этот этап перевода, поскольку достаточно простого описания намерений на обычном языке, а агент берет на себя остальное. Это не делает Playwright устаревшим — оно становится более специализированным, подобно тому как хирург продолжает использовать скальпель в эпоху роботизированной хирургии. Скальпель обеспечивает точность, контроль и надежность, а робот — возможность справляться с сложностью, адаптивность и масштаб. Практический вопрос теперь не в том, Playwright или MCP, а в том, когда нужен скальпель, а когда — робот.

Связанные статьи

  • Создание локального агента для исследований в LM Studio с использованием четырех серверов MCP — Объединение серверов файловой системы, GitHub, SearXNG и Camofox MCP в одном чате LM Studio, сокращение схемы инструмента, добавление промпта для планирования исследований и проверка корректности работы с помощью демо-версии.
  • MCP и OAuth2: кто авторизовал действие агента? — Почему OAuth2 покрывает лишь часть процедур авторизации агентов в рамках MCP, и как взаимодействуют OIDC, диапазоны полномочий, правила confused-deputy, GNAP и возможности агента.
  • Семнадцать небольших инструментов MCP вместо одного гигантского агента: система написания текстов с использованием ИИ — Как система для исследований и написания текстов разделяет процессы обработки видео, поиска, составления черновиков, оценки и проверки кода на отдельные инструменты MCP с возможностью отслеживания действий.
  • Практические заметки: «MCP: протокол, превращающий ИИ из чат-бота в агента ИИ» — Подробное руководство по применению протокола MCP: контракты, проверки и готовые блоки кода для команд, разрабатывающих системы на основе MCP.
  • Объяснение WebMCP: возможность для веб-сайтов публиковать инструменты вместо того, чтобы агенты кликали по интерфейсу — WebMCP позволяет сайтам предоставлять инструменты, такие как add_todo, непосредственно агентам ИИ, заменяя процесс кликов с использованием скриншотов. Рассматриваются определения инструментов, механизм OAuth и причины того, что технология все еще находится на ранней стадии развития.
  • Скриншоты в качестве доказательств для агентов ИИ: полная захват страницы, выделение областей и сравнение изменений — Почему агентам нужно больше, чем просто скриншот от Playwright: полный захват страницы, выделение определенных областей, хешированное хранение данных, безшумные сравнения изменений, мониторинг и ограничение расходов по протоколу MCP.