Amiga
Оглавление курса · урок 6 из 13

Модуль 2 · Автоматизация · урок 6 из 13

Браузер в руках агента

Пока агент видит только код, он гадает, как страница выглядит и ведёт себя на самом деле. С браузером он может открыть локальный стенд, пройти сценарий, посмотреть консоль и убедиться, что исправление работает. Для ручного тестировщика это новый инструмент исследования, для автоматизатора — способ быстрее писать и отлаживать тесты. Разберём оба варианта и их границы.

Два способа дать агенту браузер

Встроенный браузер в ChatGPT desktop app

В режиме Codex десктопного приложения ChatGPT есть встроенный браузер: общий для вас и агента вид сайта или локального приложения прямо в чате (Browser). Что в нём полезно для QA:

  • открыть локальный маршрут с запущенного дев-сервера и смотреть страницу рядом с диффом;
  • попросить агента воспроизвести баг вёрстки и проверить результат своей работы на странице — к браузеру можно обратиться явно через @Browser;
  • режим аннотаций: выделить элемент или область и оставить комментарий, который агент учтёт в следующем шаге;
  • режим разработчика (Developer mode) с полным доступом по CDP: консоль, сетевые запросы, DOM и стили, профилирование JavaScript.

Ограничения тоже из документации: у браузера отдельный профиль, ваши обычные вкладки и сессии он не видит; загрузку файлов автоматизировать нельзя; режим разработчика включается в настройках и требует явного одобрения для каждого сайта, администратор может его запретить.

Playwright MCP в CLI и IDE

В Codex CLI браузер подключается как MCP-сервер — настройки MCP общие у CLI, IDE-расширения и десктопа. Команда из README проекта:

bash
codex mcp add playwright -- npx "@playwright/mcp@latest"

Или вручную в конфиге:

toml · ~/.codex/config.toml
[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest", "--isolated"]

Флаг --isolated держит профиль браузера в памяти и не сохраняет его на диск — каждый запуск начинается с чистого состояния. Проверить, что сервер подключился, можно командой /mcp.

Playwright MCP работает через дерево доступности (accessibility tree), а не по пикселям: инструмент browser_snapshot отдаёт агенту структурированный снимок страницы с ролями и подписями (playwright-mcp). Это быстро и точно для логики, но визуальные проблемы — наложения, обрезанный текст, неверный цвет — по такому снимку не видны. Для них просите скриншот и сверку с макетом.

Если цель — именно писать тесты, а не исследовать, README предлагает кодинг-агентам посмотреть на связку Playwright CLI и навыков (playwright-cli): она экономнее расходует контекст. MCP, по словам README, оправдан для длинных исследовательских сценариев с сохранением состояния браузера.

Исследовательское тестирование с агентом

Агент хорошо проходит сценарии по чартеру — короткой миссии исследовательской сессии. Пример для формы заявки:

text
Используй браузер. Стенд: http://localhost:8001.
Миссия: исследовать форму заявки на /contacts с точки зрения пользователя,
который ошибается при вводе.
- Попробуй: пустые поля, телефон в разных форматах, очень длинное имя,
  эмодзи, двойной клик по «Отправить», возврат назад после отправки.
- Повтори ключевые шаги в мобильном размере окна.
- После каждого шага смотри консоль и сетевые запросы.
Ничего не исправляй. Отчёт: таблица «шаг — ожидал — увидел — доказательство»,
отдельно — что показалось странным, но не является явной ошибкой.
Не отправляй больше двух заявок.

Что получается хорошо: перебор вариантов ввода, ошибки в консоли, неожиданные ответы сервера, тексты ошибок. Что хуже: оценка «удобно ли это человеку» и визуальные мелочи. Этот отчёт — сырьё для вас, а не готовый вывод. Странное из второго списка проверяйте сами.

Ещё один сценарий — проверка исправления. После правки агент открывает страницу и проходит шаги из баг-репорта. Это не замена автотесту, но отсекает «починил, не проверив».

Безопасность: браузер — не граница

Здесь важно не обмануться настройками.

Playwright MCP — не граница безопасности. Так прямо написано в README проекта. Флаг --allowed-origins, который ограничивает адреса для браузера, по тому же источнику тоже не является границей безопасности. Это удобство, а не защита.

Песочница Codex браузер не покрывает. Песочница и сетевой прокси Codex действуют на команды оболочки. Трафик MCP-серверов, браузера и Computer Use прокси не фильтрует (Approvals & security). Если в песочнице сеть выключена, агент с Playwright MCP всё равно ходит куда угодно.

Содержимое страницы — недоверенные данные. Документация встроенного браузера прямо просит считать текст на странице недоверенным контекстом: инструкции на ней могут быть вводящими в заблуждение или вредоносными. Это классическая промпт-инъекция (prompt injection): страница «просит» агента сделать что-то, чего вы не просили.

Практические правила курса:

  • Агент с браузером ходит только на локальный стенд и тестовые окружения, не на прод и не в админки с боевыми данными.
  • Никаких реальных учётных записей. Тестовые аккаунты — из сидов проекта.
  • Профиль браузера изолированный (--isolated или отдельный профиль встроенного браузера).
  • Режим разработчика во встроенном браузере — только для своих тестовых сайтов.
  • Если агент пошёл на неожиданный адрес или начал делать то, о чём вы не просили, — остановите сессию и разберитесь.

Мобильные приложения

Браузер помогает с мобильной вёрсткой сайта: агент может открыть страницу в узком окне, а в Playwright MCP есть эмуляция устройств (точные флаги — в README). Для нативных приложений он бесполезен. Там агент полезнее в тест-дизайне, юнит-тестах, разборе логов и крэш-репортов — об этом в уроке «Воспроизведение багов и баг-репорты».

Попробуйте сами

10–15 мин на рабочем месте
  1. Подключите Playwright MCP с --isolated, проверьте его через /mcp и попросите агента открыть главную страницу локального стенда и перечислить ошибки в консоли.
  2. Проведите 10-минутную исследовательскую сессию по чартеру из урока на одной форме вашего проекта. Проверьте вручную два пункта из отчёта.
  3. Запишите в AGENTS.md правило, на какие адреса агенту можно ходить с браузером.

Коротко

  • Встроенный браузер десктопа — для превью, аннотаций и проверки исправлений; Playwright MCP — для CLI и IDE.
  • Снимок по дереву доступности хорош для логики; визуальные проблемы требуют скриншотов.
  • Для написания тестов README Playwright MCP предлагает рассмотреть Playwright CLI с навыками.
  • Playwright MCP и --allowed-origins — не граница безопасности; прокси песочницы не фильтрует браузер и MCP.
  • Только тестовые окружения, тестовые аккаунты и изолированный профиль; текст страниц — недоверенные данные.
Отметка хранится только в вашем браузере
Хотите связаться с владельцем
компании напрямую?
Дмитрий Тарасов
Дмитрий Тарасов
СЕО

НАПИСАТЬ

Написать в MAX