Playwright MCP

официальный

Официальный MCP-сервер Playwright для автоматизации браузера, инспекции страниц, создания скриншотов и веб-взаимодействия из Claude, Cursor и других AI-агентов.

Что можно делать с Playwright MCP?

  • Навигация и взаимодействие с веб-страницами — попросите ассистента открыть URL, нажать на элементы, заполнить формы или извлечь структурированные снимки доступности с помощью автоматизации браузера Playwright.
  • Настройка поведения браузера — задайте тип браузера, размер окна просмотра, эмуляцию устройства или пользовательский агент через аргументы --browser, --device, --viewport-size и --user-agent.
  • Управление сессиями и аутентификацией — используйте постоянные профили (--user-data-dir), изолированные сессии (--isolated) или файлы состояния хранилища (--storage-state) для контроля состояния входа между запусками.
  • Подключение к существующему браузеру — присоединитесь к запущенному экземпляру Chrome или Edge с помощью флага --extension, чтобы повторно использовать сессии без повторной аутентификации.
  • Управление выводом и снимками — захватывайте консольные сообщения, сетевые логи и снимки доступности в файлы или stdout с помощью --output-dir, --output-mode и --snapshot-mode.

Документация

Playwright MCP

Сервер Model Context Protocol (MCP), предоставляющий возможности автоматизации браузера с помощью Playwright. Этот сервер позволяет LLM взаимодействовать с веб-страницами через структурированные снимки специальных возможностей, устраняя необходимость в скриншотах или визуально-ориентированных моделях.

Playwright MCP против Playwright CLI

Этот пакет предоставляет интерфейс MCP для Playwright. Если вы используете агента для написания кода, вам может быть полезнее использовать CLI+SKILLS.

  • CLI: Современные агенты для написания кода все чаще предпочитают рабочие процессы на основе CLI, представленные как SKILLS, а не MCP, поскольку вызовы CLI более эффективны с точки зрения токенов: они избегают загрузки больших схем инструментов и многословных деревьев специальных возможностей в контекст модели, позволяя агентам действовать через лаконичные, специализированные команды. Это делает CLI + SKILLS более подходящими для высокопроизводительных агентов по написанию кода, которые должны балансировать автоматизацию браузера с большими кодовыми базами, тестами и логическими рассуждениями в ограниченных контекстных окнах.
    Узнайте больше о Playwright CLI с SKILLS.

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

Ключевые особенности

  • Быстрый и легковесный. Использует дерево специальных возможностей Playwright, а не попиксельный ввод.
  • Дружественный к LLM. Не требуются модели зрения, работает исключительно на структурированных данных.
  • Детерминированное применение инструментов. Избегает неоднозначности, характерной для подходов на основе скриншотов.

Требования

  • Node.js 18 или новее
  • VS Code, Cursor, Windsurf, Claude Desktop, Goose, Grok, Junie или любой другой клиент MCP

Начало работы

Сначала установите сервер Playwright MCP с вашим клиентом.

Стандартная конфигурация работает в большинстве инструментов:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

Install in VS Code Install in VS Code Insiders

Amp

Добавьте через экран настроек расширения Amp VS Code или обновив файл settings.json:

"amp.mcpServers": {
  "playwright": {
    "command": "npx",
    "args": [
      "@playwright/mcp@latest"
    ]
  }
}

Настройка Amp CLI:

Добавьте с помощью команды amp mcp add ниже

amp mcp add playwright -- npx @playwright/mcp@latest
Antigravity

Добавьте через настройки Antigravity или обновив файл конфигурации:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}
Claude Code

Используйте Claude Code CLI для добавления сервера Playwright MCP:

claude mcp add playwright npx @playwright/mcp@latest
Claude Desktop

Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше.

Cline

Следуйте инструкциям в разделе Настройка серверов MCP

Пример: Локальная настройка

Добавьте следующее в ваш файл cline_mcp_settings.json:

{
  "mcpServers": {
    "playwright": {
      "type": "stdio",
      "command": "npx",
      "timeout": 30,
      "args": [
        "-y",
        "@playwright/mcp@latest"
      ],
      "disabled": false
    }
  }
}
Codex

Используйте Codex CLI для добавления сервера Playwright MCP:

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

В качестве альтернативы создайте или отредактируйте файл конфигурации ~/.codex/config.toml и добавьте:

[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]

Для получения дополнительной информации см. документацию Codex MCP.

Copilot

Используйте Copilot CLI для интерактивного добавления сервера Playwright MCP:

/mcp add

В качестве альтернативы создайте или отредактируйте файл конфигурации ~/.copilot/mcp-config.json и добавьте:

{
  "mcpServers": {
    "playwright": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

Для получения дополнительной информации см. документацию Copilot CLI.

Cursor

Нажмите кнопку для установки:

Install in Cursor

Или установите вручную:

Перейдите в Cursor Settings -> MCP -> Add new MCP Server. Назовите по своему усмотрению, используйте тип command с командой npx @playwright/mcp@latest. Вы также можете проверить конфигурацию или добавить аргументы командной строки, нажав Edit.

Factory

Используйте Factory CLI для добавления сервера Playwright MCP:

droid mcp add playwright "npx @playwright/mcp@latest"

В качестве альтернативы введите /mcp в дроиде Factory, чтобы открыть интерактивный интерфейс для управления серверами MCP.

Для получения дополнительной информации см. документацию Factory MCP.

Gemini CLI

Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше.

Goose

Нажмите кнопку для установки:

Install in Goose

Или установите вручную:

Перейдите в Advanced settings -> Extensions -> Add custom extension. Назовите по своему усмотрению, используйте тип STDIO и установите command в npx @playwright/mcp. Нажмите "Add Extension".

Grok

Используйте Grok CLI для добавления сервера Playwright MCP:

grok mcp add playwright -- npx @playwright/mcp@latest

В качестве альтернативы создайте или отредактируйте файл конфигурации ~/.grok/config.toml и добавьте:

[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]

Для получения дополнительной информации см. документацию Grok MCP.

Junie

Чтобы добавить сервер Playwright MCP в Junie CLI:

  1. Введите /mcp
  2. Нажмите Ctrl+A, чтобы добавить новый сервер MCP
  3. Выберите Playwright из списка

В качестве альтернативы добавьте в .junie/mcp/mcp.json:

{
  "mcpServers": {
    "Playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@playwright/mcp@latest"
      ]
    }
  }
}

Для получения дополнительной информации см. документацию по конфигурации Junie MCP.

Kiro

Add to Kiro

Следуйте документации по серверам MCP. Например, в .kiro/settings/mcp.json:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}
LM Studio

Нажмите кнопку для установки:

Add MCP Server playwright to LM Studio

Или установите вручную:

Перейдите в Program на правой боковой панели -> Install -> Edit mcp.json. Используйте стандартную конфигурацию выше.

opencode

Следуйте документации по серверам MCP. Например, в ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "playwright": {
      "type": "local",
      "command": [
        "npx",
        "@playwright/mcp@latest"
      ],
      "enabled": true
    }
  }
}

Qodo Gen

Откройте панель чата Qodo Gen в VSCode или IntelliJ → Подключить другие инструменты → + Добавить новый MCP → Вставьте стандартную конфигурацию выше.

Нажмите Сохранить.

VS Code

Нажмите кнопку для установки:

Install in VS Code Install in VS Code Insiders

Или установите вручную:

Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше. Вы также можете установить сервер Playwright MCP с помощью VS Code CLI:

# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'

После установки сервер Playwright MCP будет доступен для использования с вашим агентом GitHub Copilot в VS Code.

Warp

Перейдите в Settings -> AI -> Manage MCP Servers -> + Add, чтобы добавить сервер MCP. Используйте стандартную конфигурацию выше.

В качестве альтернативы используйте слеш-команду /add-mcp в приглашении Warp и вставьте стандартную конфигурацию из выше:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}
Windsurf

Следуйте документации Windsurf MCP. Используйте стандартную конфигурацию выше.

Конфигурация

Сервер Playwright MCP поддерживает следующие аргументы. Они могут быть предоставлены в JSON-конфигурации выше как часть списка "args":

ПараметрОписание
--allowed-hosts <hosts...>список хостов через запятую, с которых разрешено обслуживать этот сервер. По умолчанию используется хост, к которому привязан сервер. Передайте '*', чтобы отключить проверку хоста.
env PLAYWRIGHT_MCP_ALLOWED_HOSTS
--allowed-origins список ДОВЕРЕННЫХ источников через точку с запятой, запросы от которых разрешены браузеру. По умолчанию разрешены все. Важно: не является границей безопасности и не влияет на перенаправления.
env PLAYWRIGHT_MCP_ALLOWED_ORIGINS
--allow-unrestricted-file-accessразрешить доступ к файлам за пределами корневых каталогов рабочей области. Также разрешает неограниченный доступ к URL-адресам file://. По умолчанию доступ к файловой системе ограничен только корневыми каталогами рабочей области (или cwd, если корневые каталоги не настроены), а переход по URL-адресам file:// заблокирован.
env PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS
--blocked-origins список источников через точку с запятой, запросы к которым браузеру запрещены. Блок-лист оценивается перед разрешенным списком. Если используется без разрешенного списка, запросы, не соответствующие блок-листу, по-прежнему разрешены. Важно: не является границей безопасности и не влияет на перенаправления.
env PLAYWRIGHT_MCP_BLOCKED_ORIGINS
--block-service-workersблокировать сервис-воркеры
env PLAYWRIGHT_MCP_BLOCK_SERVICE_WORKERS
--browser используемый браузер или канал Chrome, возможные значения: chrome, firefox, webkit, msedge.
env PLAYWRIGHT_MCP_BROWSER
--caps список дополнительных возможностей для включения через запятую, возможные значения: vision, pdf, devtools.
env PLAYWRIGHT_MCP_CAPS
--cdp-endpoint конечная точка CDP для подключения.
env PLAYWRIGHT_MCP_CDP_ENDPOINT
--cdp-header <headers...>заголовки CDP, отправляемые с запросом на подключение, можно указать несколько.
env PLAYWRIGHT_MCP_CDP_HEADERS
--cdp-timeout тайм-аут в миллисекундах для подключения к конечной точке CDP, по умолчанию 30000 мс
env PLAYWRIGHT_MCP_CDP_TIMEOUT
--codegen указать язык для генерации кода, возможные значения: "typescript", "none". По умолчанию "typescript".
env PLAYWRIGHT_MCP_CODEGEN
--config путь к файлу конфигурации.
env PLAYWRIGHT_MCP_CONFIG
--console-level уровень возвращаемых сообщений консоли: "error", "warning", "info", "debug". Каждый уровень включает сообщения более серьезных уровней.
env PLAYWRIGHT_MCP_CONSOLE_LEVEL
--device эмулируемое устройство, например: "iPhone 15"
env PLAYWRIGHT_MCP_DEVICE
--mobileэмулировать типичное мобильное устройство (Pixel 10 для Chromium, iPhone 17 для WebKit). Мобильные страницы обычно легче, что экономит токены. Нельзя комбинировать с --device.
env PLAYWRIGHT_MCP_MOBILE
--executable-path путь к исполняемому файлу браузера.
env PLAYWRIGHT_MCP_EXECUTABLE_PATH
--extensionПодключиться к запущенному экземпляру браузера (только Edge/Chrome). Требуется установленное "Playwright Extension".
env PLAYWRIGHT_MCP_EXTENSION
--endpoint Конечная точка привязанного браузера для подключения.
env PLAYWRIGHT_MCP_ENDPOINT
--grant-permissions <permissions...>Список разрешений, предоставляемых контексту браузера, например "geolocation", "clipboard-read", "clipboard-write".
env PLAYWRIGHT_MCP_GRANT_PERMISSIONS
--headlessзапускать браузер в автономном режиме, по умолчанию с интерфейсом
env PLAYWRIGHT_MCP_HEADLESS
--host хост для привязки сервера. По умолчанию localhost. Используйте 0.0.0.0 для привязки ко всем интерфейсам.
env PLAYWRIGHT_MCP_HOST
--ignore-https-errorsигнорировать ошибки https
env PLAYWRIGHT_MCP_IGNORE_HTTPS_ERRORS
--init-page <path...>путь к файлу TypeScript для выполнения на объекте страницы Playwright
env PLAYWRIGHT_MCP_INIT_PAGE
--init-script <path...>путь к файлу JavaScript для добавления в качестве скрипта инициализации. Скрипт будет выполнен на каждой странице перед любыми скриптами страницы. Можно указать несколько раз.
env PLAYWRIGHT_MCP_INIT_SCRIPT
--isolatedхранить профиль браузера в памяти, не сохранять на диск.
env PLAYWRIGHT_MCP_ISOLATED
--image-responses отправлять ли клиенту ответы с изображениями. Может быть "allow" или "omit", по умолчанию "allow".
env PLAYWRIGHT_MCP_IMAGE_RESPONSES
--no-sandboxотключить песочницу для всех типов процессов, которые обычно изолируются.
env PLAYWRIGHT_MCP_NO_SANDBOX
--output-dir путь к каталогу для выходных файлов.
env PLAYWRIGHT_MCP_OUTPUT_DIR
--output-max-size Порог для удаления старых выходных файлов, в байтах.
env PLAYWRIGHT_MCP_OUTPUT_MAX_SIZE
--output-mode сохранять ли снимки, сообщения консоли, сетевые логи в файл или в стандартный вывод. Может быть "file" или "stdout". По умолчанию "stdout".
env PLAYWRIGHT_MCP_OUTPUT_MODE
--port порт для прослушивания SSE-транспорта.
env PLAYWRIGHT_MCP_PORT
--proxy-bypass домены через запятую, для которых прокси не используется, например ".com,chromium.org,.domain.com"
env PLAYWRIGHT_MCP_PROXY_BYPASS
--proxy-server указать прокси-сервер, например "http://myproxy:3128" или "socks5://myproxy:8080"
env PLAYWRIGHT_MCP_PROXY_SERVER
--sandboxвключить песочницу для всех типов процессов, которые обычно не изолируются.
env PLAYWRIGHT_MCP_SANDBOX
--save-sessionСохранять ли сессию Playwright MCP в выходной каталог.
env PLAYWRIGHT_MCP_SAVE_SESSION
--secrets путь к файлу, содержащему секреты в формате dotenv
env PLAYWRIGHT_MCP_SECRETS_FILE
--shared-browser-contextпереиспользовать один и тот же контекст браузера между всеми подключенными HTTP-клиентами.
env PLAYWRIGHT_MCP_SHARED_BROWSER_CONTEXT
--snapshot-mode при создании снимков для ответов определяет используемый режим. Может быть "full" или "none". По умолчанию "full".
env PLAYWRIGHT_MCP_SNAPSHOT_MODE
--storage-state путь к файлу состояния хранилища для изолированных сессий.
env PLAYWRIGHT_MCP_STORAGE_STATE
--test-id-attribute указать атрибут, используемый для тестовых идентификаторов, по умолчанию "data-testid"
env PLAYWRIGHT_MCP_TEST_ID_ATTRIBUTE
--timeout-action указать тайм-аут действия в миллисекундах, по умолчанию 5000 мс
env PLAYWRIGHT_MCP_TIMEOUT_ACTION
--timeout-navigation указать тайм-аут навигации в миллисекундах, по умолчанию 60000 мс
env PLAYWRIGHT_MCP_TIMEOUT_NAVIGATION
--user-agent указать строку пользовательского агента
env PLAYWRIGHT_MCP_USER_AGENT
--user-data-dir путь к каталогу пользовательских данных. Если не указан, будет создан временный каталог.
env PLAYWRIGHT_MCP_USER_DATA_DIR
--viewport-size указать размер области просмотра браузера в пикселях, например "1280x720"
env PLAYWRIGHT_MCP_VIEWPORT_SIZE

Профиль пользователя

Вы можете запускать Playwright MCP с постоянным профилем, как обычный браузер (по умолчанию), в изолированных контекстах для тестовых сессий или подключаться к существующему браузеру с помощью браузерного расширения.

Постоянный профиль

Вся информация о входе в систему будет храниться в постоянном профиле. Вы можете удалить его между сессиями, если хотите очистить офлайн-состояние. Постоянный профиль находится по следующим путям, и вы можете переопределить его с помощью аргумента --user-data-dir.

# Windows
%USERPROFILE%\AppData\Local\ms-playwright\mcp-{channel}-{workspace-hash}

# macOS
- ~/Library/Caches/ms-playwright/mcp-{channel}-{workspace-hash}

# Linux
- ~/.cache/ms-playwright/mcp-{channel}-{workspace-hash}

{workspace-hash} формируется из корня рабочей области MCP-клиента, поэтому разные проекты автоматически получают отдельные профили.

[!IMPORTANT] Постоянный профиль может использоваться только одним экземпляром браузера одновременно, поэтому параллельные MCP-клиенты, использующие одну рабочую область, будут конфликтовать. Чтобы запустить несколько клиентов параллельно, запускайте каждый дополнительный клиент с --isolated или указывайте ему отдельный --user-data-dir.

Изолированный

В изолированном режиме каждая сессия запускается в изолированном профиле. Каждый раз, когда вы просите MCP закрыть браузер, сессия завершается, и все данные состояния хранилища для этой сессии теряются. Вы можете предоставить начальное состояние хранилища браузеру через параметр конфигурации contextOptions или через аргумент --storage-state. Узнайте больше о состоянии хранилища здесь.

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest",
        "--isolated",
        "--storage-state={path/to/storage.json}"
      ]
    }
  }
}

Браузерное расширение

Playwright MCP Chrome Extension позволяет подключаться к существующим вкладкам браузера и использовать ваши сессии входа и состояние браузера. Инструкции по установке и настройке см. в microsoft/playwright › packages/extension.

Начальное состояние

Существует несколько способов задать начальное состояние для контекста браузера или страницы.

Для состояния хранилища вы можете:

  • Начать с каталога пользовательских данных, используя аргумент --user-data-dir. Это сохранит все данные браузера между сессиями.
  • Начать с файла состояния хранилища, используя аргумент --storage-state. Это загрузит куки и локальное хранилище из файла в изолированный контекст браузера.

Для состояния страницы вы можете использовать:

  • --init-page, чтобы указать на файл TypeScript, который будет выполнен на объекте страницы Playwright. Это позволяет запускать произвольный код для настройки страницы.
// init-page.ts
export default async ({ page }) => {
  await page.context().grantPermissions(['geolocation']);
  await page.context().setGeolocation({ latitude: 37.7749, longitude: -122.4194 });
  await page.setViewportSize({ width: 1280, height: 720 });
};
  • --init-script, чтобы указать на файл JavaScript, который будет добавлен в качестве скрипта инициализации. Скрипт будет выполнен на каждой странице перед любыми скриптами страницы. Это полезно для переопределения API браузера или настройки окружения.
// init-script.js
window.isPlaywrightMCP = true;

Файл конфигурации

Сервер Playwright MCP можно настроить с помощью JSON-файла конфигурации. Вы можете указать файл конфигурации с помощью параметра командной строки --config:

npx @playwright/mcp@latest --config path/to/config.json
Схема файла конфигурации
{
  /**
   * The browser to use.
   */
  browser?: {
    /**
     * The type of browser to use.
     */
    browserName?: 'chromium' | 'firefox' | 'webkit';

    /**
     * Keep the browser profile in memory, do not save it to disk.
     */
    isolated?: boolean;

    /**
     * Path to a user data directory for browser profile persistence.
     * Temporary directory is created by default.
     */
    userDataDir?: string;

    /**
     * Launch options passed to
     * @see https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
     *
     * This is useful for settings options like `channel`, `headless`, `executablePath`, etc.
     */
    launchOptions?: playwright.LaunchOptions;

    /**
     * Context options for the browser context.
     *
     * This is useful for settings options like `viewport`.
     */
    contextOptions?: playwright.BrowserContextOptions;

    /**
     * Chrome DevTools Protocol endpoint to connect to an existing browser instance in case of Chromium family browsers.
     */
    cdpEndpoint?: string;

    /**
     * CDP headers to send with the connect request.
     */
    cdpHeaders?: Record<string, string>;

    /**
     * Timeout in milliseconds for connecting to CDP endpoint. Defaults to 30000 (30 seconds). Pass 0 to disable timeout.
     */
    cdpTimeout?: number;

    /**
     * Remote endpoint to connect to an existing Playwright server. May be a
     * WebSocket URL string, or a [ConnectOptions] object that mirrors the
     * `connectOptions` shape used by the test runner. When passed as an object,
     * `exposeNetwork`, `headers`, `slowMo`, and `timeout` are forwarded to the
     * underlying connect call.
     */
    remoteEndpoint?: string | playwright.ConnectOptions & { endpoint: string };

    /**
     * Paths to TypeScript files to add as initialization scripts for Playwright page.
     */
    initPage?: string[];

    /**
     * Paths to JavaScript files to add as initialization scripts.
     * The scripts will be evaluated in every page before any of the page's scripts.
     */
    initScript?: string[];
  },

  /**
   * Connect to a running browser instance (Edge/Chrome only). If specified, `browser`
   * config is ignored.
   * Requires the "Playwright Extension" to be installed.
   */
  extension?: boolean;

  server?: {
    /**
     * The port to listen on for SSE or MCP transport.
     */
    port?: number;

    /**
     * The host to bind the server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.
     */
    host?: string;

    /**
     * The hosts this server is allowed to serve from. Defaults to the host server is bound to.
     * This is not for CORS, but rather for the DNS rebinding protection.
     */
    allowedHosts?: string[];
  },

  /**
   * List of enabled tool capabilities. Possible values:
   *   - 'core': Core browser automation features.
   *   - 'pdf': PDF generation and manipulation.
   *   - 'vision': Coordinate-based interactions.
   *   - 'devtools': Developer tools features.
   */
  capabilities?: ToolCapability[];

  /**
   * Whether to save the Playwright session into the output directory.
   */
  saveSession?: boolean;

  /**
   * Reuse the same browser context between all connected HTTP clients.
   */
  sharedBrowserContext?: boolean;

  /**
   * Secrets are used to replace matching plain text in the tool responses to prevent the LLM
   * from accidentally getting sensitive data. It is a convenience and not a security feature,
   * make sure to always examine information coming in and from the tool on the client.
   */
  secrets?: Record<string, string>;

  /**
   * The directory to save output files.
   */
  outputDir?: string;

  /**
   * Threshold for evicting old output files, in bytes.
   */
  outputMaxSize?: number;

  console?: {
    /**
     * The level of console messages to return. Each level includes the messages of more severe levels. Defaults to "info".
     */
    level?: 'error' | 'warning' | 'info' | 'debug';
  },

  network?: {
    /**
     * List of origins to allow the browser to request. Default is to allow all. Origins matching both `allowedOrigins` and `blockedOrigins` will be blocked.
     *
     * Supported formats:
     * - Full origin: `https://example.com:8080` - matches only that origin
     * - Wildcard port: `http://localhost:*` - matches any port on localhost with http protocol
     */
    allowedOrigins?: string[];

    /**
     * List of origins to block the browser to request. Origins matching both `allowedOrigins` and `blockedOrigins` will be blocked.
     *
     * Supported formats:
     * - Full origin: `https://example.com:8080` - matches only that origin
     * - Wildcard port: `http://localhost:*` - matches any port on localhost with http protocol
     */
    blockedOrigins?: string[];
  };

  /**
   * Specify the attribute to use for test ids, defaults to "data-testid".
   */
  testIdAttribute?: string;

  timeouts?: {
    /*
     * Configures default action timeout: https://playwright.dev/docs/api/class-page#page-set-default-timeout. Defaults to 5000ms.
     */
    action?: number;

    /*
     * Configures default navigation timeout: https://playwright.dev/docs/api/class-page#page-set-default-navigation-timeout. Defaults to 60000ms.
     */
    navigation?: number;

    /**
     * Configures default expect timeout: https://playwright.dev/docs/test-timeouts#expect-timeout. Defaults to 5000ms.
     */
    expect?: number;
  };

  /**
   * Whether to send image responses to the client. Can be "allow", "omit", or "auto". Defaults to "auto", which sends images if the client can display them.
   */
  imageResponses?: 'allow' | 'omit';

  snapshot?: {
    /**
     * When taking snapshots for responses, specifies the mode to use.
     */
    mode?: 'full' | 'none';
  };

  /**
   * allowUnrestrictedFileAccess acts as a guardrail to prevent the LLM from accidentally
   * wandering outside its intended workspace. It is a convenience defense to catch unintended
   * file access, not a secure boundary; a deliberate attempt to reach other directories can be
   * easily worked around, so always rely on client-level permissions for true security.
   */
  allowUnrestrictedFileAccess?: boolean;

  /**
   * Specify the language to use for code generation.
   */
  codegen?: 'typescript' | 'none';
}

Автономный MCP-сервер

При запуске браузера с интерфейсом в системе без дисплея или из рабочих процессов IDE, запускайте MCP-сервер из окружения с DISPLAY и передайте флаг --port, чтобы включить HTTP-транспорт.

npx @playwright/mcp@latest --port 8931

А затем в конфигурации MCP-клиента установите url на HTTP-конечную точку:

{
  "mcpServers": {
    "playwright": {
      "url": "http://localhost:8931/mcp"
    }
  }
}

Безопасность

Playwright MCP не является границей безопасности. См. MCP Security Best Practices для руководства по обеспечению безопасности вашего развертывания.

Docker

ПРИМЕЧАНИЕ: Реализация Docker в настоящее время поддерживает только headless chromium.

{
  "mcpServers": {
    "playwright": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "--init", "--pull=always", "mcr.microsoft.com/playwright/mcp"]
    }
  }
}

Или, если вы предпочитаете запускать контейнер как долгоживущий сервис, а не позволять MCP-клиенту порождать его, используйте:

docker run -d -i --rm --init --pull=always \
  --entrypoint node \
  --name playwright \
  -p 8931:8931 \
  mcr.microsoft.com/playwright/mcp \
  /app/cli.js --headless --browser chromium --no-sandbox --port 8931 --host 0.0.0.0

Сервер будет слушать хост-порт 8931 и может быть доступен любому MCP-клиенту.

Вы можете собрать образ Docker самостоятельно.

docker build -t mcr.microsoft.com/playwright/mcp .
Программное использование
import http from 'http';

import { createConnection } from '@playwright/mcp';
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';

http.createServer(async (req, res) => {
  // ...

  // Creates a headless Playwright MCP server with SSE transport
  const connection = await createConnection({ browser: { launchOptions: { headless: true } } });
  const transport = new SSEServerTransport('/messages', res);
  await connection.connect(transport);

  // ...
});

Инструменты

Основная автоматизация - **browser_click**
  • Название: Клик
  • Описание: Выполнить клик на веб-странице
  • Параметры:
    • element (строка, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
    • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
    • doubleClick (логическое, опционально): Выполнить двойной клик вместо одинарного
    • button (строка, опционально): Кнопка для клика, по умолчанию левая
    • modifiers (массив, опционально): Клавиши-модификаторы для нажатия
  • Только для чтения: false
  • browser_close
    • Название: Закрыть браузер
    • Описание: Закрыть страницу
    • Параметры: Нет
    • Только для чтения: false
  • browser_console_messages
    • Название: Получить сообщения консоли
    • Описание: Возвращает все сообщения консоли
    • Параметры:
      • level (строка): Уровень возвращаемых сообщений консоли. Каждый уровень включает сообщения более серьезных уровней. По умолчанию "info".
      • all (логическое, опционально): Вернуть все сообщения консоли с начала сессии, а не только с последней навигации. По умолчанию false.
      • filename (строка, опционально): Имя файла для сохранения сообщений консоли. Если не указано, сообщения возвращаются в виде текста.
    • Только для чтения: true
  • browser_drag
    • Название: Перетаскивание мыши
    • Описание: Выполнить перетаскивание между двумя элементами
    • Параметры:
      • startElement (строка, опционально): Человекочитаемое описание исходного элемента, используемое для получения разрешения на взаимодействие с элементом
      • startTarget (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
      • endElement (строка, опционально): Человекочитаемое описание целевого элемента, используемое для получения разрешения на взаимодействие с элементом
      • endTarget (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
    • Только для чтения: false
  • browser_drop
    • Название: Перетащить файлы или данные на элемент
    • Описание: Перетащить файлы или данные MIME-типа на элемент, как если бы они были перетащены извне страницы. Должен быть указан хотя бы один из параметров "paths" или "data".
    • Параметры:
      • element (строка, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
      • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
      • paths (массив, опционально): Абсолютные пути к файлам для перетаскивания на элемент.
      • data (объект, опционально): Данные для перетаскивания в виде сопоставления MIME-типа строковому значению (например, {"text/plain": "hello", "text/uri-list": "https://example.com"}).
    • Только для чтения: false
  • browser_evaluate
    • Название: Выполнить JavaScript
    • Описание: Выполнить выражение JavaScript на странице или элементе
    • Параметры:
      • element (строка, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
      • target (строка, опционально): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
      • function (строка): () => { /* код / } или (element) => { / код */ }, если элемент предоставлен
      • filename (строка, опционально): Имя файла для сохранения результата. Если не указано, результат возвращается в виде текста.
    • Только для чтения: false
  • browser_file_upload
    • Название: Загрузить файлы
    • Описание: Загрузить один или несколько файлов
    • Параметры:
      • paths (массив, опционально): Абсолютные пути к загружаемым файлам. Может быть один файл или несколько. Если не указано, выбор файла отменяется.
    • Только для чтения: false
  • browser_fill_form
    • Название: Заполнить форму
    • Описание: Заполнить несколько полей формы
    • Параметры:
      • fields (массив): Поля для заполнения
    • Только для чтения: false
  • browser_find
    • Название: Найти в снимке страницы
    • Описание: Поиск текста или регулярного выражения в снимке специальных возможностей текущей страницы. Возвращает совпадающие узлы снимка с несколькими строками окружающего контекста (как поисковые фрагменты), каждый из которых отображается с указанием пути от корня дерева, что дешевле, чем захват всего снимка, когда нужно только найти элемент и его ссылку.
    • Параметры:
      • text (строка, опционально): Простой текст для поиска в снимке страницы (поиск подстроки без учета регистра). Укажите либо текст, либо регулярное выражение, но не оба сразу.
      • regex (строка, опционально): Регулярное выражение для поиска в снимке страницы. По умолчанию поиск чувствителен к регистру; заключите шаблон в слеши, чтобы добавить флаги, например, "/error/i" для поиска без учета регистра. Укажите либо текст, либо регулярное выражение, но не оба сразу.
    • Только для чтения: true
  • browser_handle_dialog
    • Название: Обработать диалог
    • Описание: Обработать диалог
    • Параметры:
      • accept (логическое): Принять ли диалог.
      • promptText (строка, опционально): Текст запроса в случае диалога с запросом.
    • Только для чтения: false
  • browser_hover
    • Название: Навести мышь
    • Описание: Навести курсор на элемент на странице
    • Параметры:
      • element (строка, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
      • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
    • Только для чтения: false
  • browser_navigate
    • Название: Перейти по URL
    • Описание: Перейти по URL
    • Параметры:
      • url (строка): URL для перехода
    • Только для чтения: false
  • browser_navigate_back
    • Название: Назад
    • Описание: Вернуться на предыдущую страницу в истории
    • Параметры: Нет
    • Только для чтения: false
  • browser_network_request
    • Название: Показать детали сетевого запроса
    • Описание: Возвращает полные детали (заголовки и тело) одного сетевого запроса или одной его части, если установлен part. Используйте номер из browser_network_requests.
    • Параметры:
      • index (целое число): Индекс запроса (начиная с 1), как показано в browser_network_requests.
      • part (строка, опционально): Вернуть только эту часть запроса. Опустите, чтобы вернуть полные детали.
      • filename (строка, опционально): Имя файла для сохранения результата. Если не указано, вывод возвращается в виде текста.
    • Только для чтения: true
  • browser_network_requests
    • Название: Список сетевых запросов
    • Описание: Возвращает нумерованный список сетевых запросов с момента загрузки страницы. Используйте browser_network_request с номером, чтобы получить полные детали.
    • Параметры:
      • static (логическое): Включать ли успешные статические ресурсы, такие как изображения, шрифты, скрипты и т.д. По умолчанию false.
      • filter (строка, опционально): Возвращать только запросы, URL которых соответствует этому регулярному выражению (например, "/api/.*user").
      • filename (строка, опционально): Имя файла для сохранения сетевых запросов. Если не указано, запросы возвращаются в виде текста.
    • Только для чтения: true
  • browser_press_key
    • Название: Нажать клавишу
    • Описание: Нажать клавишу на клавиатуре
    • Параметры:
      • key (строка): Имя нажимаемой клавиши или генерируемый символ, например ArrowLeft или a
    • Только для чтения: false
  • browser_resize
    • Название: Изменить размер окна браузера
    • Описание: Изменить размер окна браузера
    • Параметры:
      • width (число): Ширина окна браузера
      • height (число): Высота окна браузера
    • Только для чтения: false
  • browser_run_code_unsafe
    • Название: Запустить код Playwright (небезопасно)
    • Описание: Запустить фрагмент кода Playwright. Небезопасно: выполняет произвольный JavaScript в процессе сервера Playwright и эквивалентно RCE.
    • Параметры:
      • code (строка, опционально): Функция JavaScript, содержащая код Playwright для выполнения. Она будет вызвана с одним аргументом, page, который можно использовать для любого взаимодействия со страницей. Например: async (page) => { await page.getByRole('button', { name: 'Submit' }).click(); return await page.title(); }
      • filename (строка, опционально): Загрузить код из указанного файла. Если указаны и код, и имя файла, код будет проигнорирован.
    • Только для чтения: false
  • browser_select_option
    • Название: Выбрать опцию
    • Описание: Выбрать опцию в выпадающем списке
    • Параметры:
      • element (строка, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
      • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
      • values (массив): Массив значений для выбора в выпадающем списке. Может быть одно значение или несколько значений.
    • Только для чтения: false
  • browser_snapshot
    • Название: Снимок страницы
    • Описание: Захватить снимок специальных возможностей текущей страницы, это лучше, чем скриншот
    • Параметры:
      • target (строка, опционально): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
      • filename (строка, опционально): Сохранить снимок в файл markdown вместо возврата в ответе.
      • depth (число, опционально): Ограничить глубину дерева снимка
      • boxes (логическое, опционально): Включить ограничивающую рамку каждого элемента как [box=x,y,width,height] в снимок. Координаты относительно области просмотра, в пикселях CSS (Element.getBoundingClientRect)
    • Только для чтения: true
  • browser_take_screenshot
    • Название: Сделать скриншот
    • Описание: Сделать скриншот текущей страницы. Вы не можете выполнять действия на основе скриншота, используйте browser_snapshot для действий.
    • Параметры:
      • element (строка, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
      • target (строка, опционально): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
      • type (строка): Формат изображения для скриншота. По умолчанию png.
      • filename (строка, опционально): Имя файла для сохранения скриншота. По умолчанию page-{timestamp}.{png|jpeg}, если не указано. Предпочтительнее использовать относительные имена файлов, чтобы оставаться в выходном каталоге.
      • fullPage (логическое, опционально): Если true, делает скриншот всей прокручиваемой страницы, а не только видимой области просмотра. Нельзя использовать со скриншотами элементов.
      • scale (строка): Масштаб разрешения изображения. "css" создает скриншот в пикселях CSS (меньше, одинаково на всех устройствах). "device" создает скриншот высокого разрешения с использованием пикселей устройства (больше, учитывает соотношение пикселей устройства). По умолчанию css.
    • Только для чтения: true
  • browser_type
    • Название: Ввести текст
    • Описание: Ввести текст в редактируемый элемент
    • Параметры:
      • element (строка, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
      • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
      • text (строка): Текст для ввода в элемент
      • submit (логическое, опционально): Отправить ли введенный текст (нажать Enter после)
      • slowly (логическое, опционально): Вводить ли по одному символу за раз. Полезно для вызова обработчиков клавиш на странице. По умолчанию весь текст вводится сразу.
    • Только для чтения: false
  • browser_wait_for
    • Название: Ожидание
    • Описание: Ожидание появления или исчезновения текста или истечения указанного времени
    • Параметры:
      • time (число, необязательно): Время ожидания в секундах
      • text (строка, необязательно): Текст, появления которого нужно дождаться
      • textGone (строка, необязательно): Текст, исчезновения которого нужно дождаться
    • Только чтение: false
Управление вкладками
  • browser_tabs
    • Название: Управление вкладками
    • Описание: Просмотр, создание, закрытие или выбор вкладки браузера.
    • Параметры:
      • action (строка): Выполняемая операция
      • index (число, необязательно): Индекс вкладки, используется для закрытия/выбора. Если не указан при закрытии, закрывается текущая вкладка.
      • url (строка, необязательно): URL для перехода в новой вкладке, используется для создания.
    • Только чтение: false
Установка браузера
Конфигурация (опционально через --caps=config)
  • browser_get_config
    • Название: Получить конфигурацию
    • Описание: Получить итоговую конфигурацию после объединения параметров CLI, переменных окружения и файла конфигурации.
    • Параметры: Нет
    • Только чтение: true
Сеть (опционально через --caps=network)
  • browser_network_state_set
    • Название: Установить состояние сети
    • Описание: Устанавливает состояние сети браузера: онлайн или офлайн. В офлайн-режиме все сетевые запросы будут завершаться ошибкой.
    • Параметры:
      • state (строка): Установите "offline" для имитации офлайн-режима, "online" для восстановления сетевого подключения
    • Только чтение: false
  • browser_route
    • Название: Имитация сетевых запросов
    • Описание: Настройка маршрута для имитации сетевых запросов, соответствующих шаблону URL
    • Параметры:
      • pattern (строка): Шаблон URL для сопоставления (например, "/api/users", "/*.{png,jpg}")
      • status (число, необязательно): Возвращаемый код состояния HTTP (по умолчанию: 200)
      • body (строка, необязательно): Тело ответа (текст или строка JSON)
      • contentType (строка, необязательно): Заголовок Content-Type (например, "application/json", "text/html")
      • headers (массив, необязательно): Добавляемые заголовки в формате "Имя: Значение"
      • removeHeaders (строка, необязательно): Список имен заголовков для удаления из запроса, разделенных запятыми
    • Только чтение: false
  • browser_route_list
    • Название: Список сетевых маршрутов
    • Описание: Показать все активные сетевые маршруты
    • Параметры: Нет
    • Только чтение: true
  • browser_unroute
    • Название: Удалить сетевые маршруты
    • Описание: Удалить сетевые маршруты, соответствующие шаблону (или все маршруты, если шаблон не указан)
    • Параметры:
      • pattern (строка, необязательно): Шаблон URL для удаления маршрута (не указывайте, чтобы удалить все маршруты)
    • Только чтение: false
Хранилище (опционально через --caps=storage)
  • browser_cookie_clear
    • Название: Очистить cookies
    • Описание: Очистить все cookies
    • Параметры: Нет
    • Только чтение: false
  • browser_cookie_delete
    • Название: Удалить cookie
    • Описание: Удалить определенный cookie
    • Параметры:
      • name (строка): Имя удаляемого cookie
    • Только чтение: false
  • browser_cookie_get
    • Название: Получить cookie
    • Описание: Получить определенный cookie по имени
    • Параметры:
      • name (строка): Имя получаемого cookie
    • Только чтение: true
  • browser_cookie_list
    • Название: Список cookies
    • Описание: Показать все cookies (опционально с фильтрацией по домену/пути)
    • Параметры:
      • domain (строка, необязательно): Фильтровать cookies по домену
      • path (строка, необязательно): Фильтровать cookies по пути
    • Только чтение: true
  • browser_cookie_set
    • Название: Установить cookie
    • Описание: Установить cookie с дополнительными флагами (domain, path, expires, httpOnly, secure, sameSite)
    • Параметры:
      • name (строка): Имя cookie
      • value (строка): Значение cookie
      • domain (строка, необязательно): Домен cookie
      • path (строка, необязательно): Путь cookie
      • expires (число, необязательно): Срок действия cookie в формате Unix timestamp
      • httpOnly (логическое, необязательно): Является ли cookie только для HTTP
      • secure (логическое, необязательно): Является ли cookie безопасным
      • sameSite (строка, необязательно): Атрибут SameSite для cookie
    • Только чтение: false
  • browser_localstorage_clear
    • Название: Очистить localStorage
    • Описание: Очистить все localStorage
    • Параметры: Нет
    • Только чтение: false
  • browser_localstorage_delete
    • Название: Удалить элемент localStorage
    • Описание: Удалить элемент из localStorage
    • Параметры:
      • key (строка): Ключ для удаления
    • Только чтение: false
  • browser_localstorage_get
    • Название: Получить элемент localStorage
    • Описание: Получить элемент из localStorage по ключу
    • Параметры:
      • key (строка): Ключ для получения
    • Только чтение: true
  • browser_localstorage_list
    • Название: Список localStorage
    • Описание: Показать все пары ключ-значение из localStorage
    • Параметры: Нет
    • Только чтение: true
  • browser_localstorage_set
    • Название: Установить элемент localStorage
    • Описание: Установить элемент в localStorage
    • Параметры:
      • key (строка): Ключ для установки
      • value (строка): Значение для установки
    • Только чтение: false
  • browser_sessionstorage_clear
    • Название: Очистить sessionStorage
    • Описание: Очистить все sessionStorage
    • Параметры: Нет
    • Только чтение: false
  • browser_sessionstorage_delete
    • Название: Удалить элемент sessionStorage
    • Описание: Удалить элемент из sessionStorage
    • Параметры:
      • key (строка): Ключ для удаления
    • Только чтение: false
  • browser_sessionstorage_get
    • Название: Получить элемент sessionStorage
    • Описание: Получить элемент из sessionStorage по ключу
    • Параметры:
      • key (строка): Ключ для получения
    • Только чтение: true
  • browser_sessionstorage_list
    • Название: Список sessionStorage
    • Описание: Показать все пары ключ-значение из sessionStorage
    • Параметры: Нет
    • Только чтение: true
  • browser_sessionstorage_set
    • Название: Установить элемент sessionStorage
    • Описание: Установить элемент в sessionStorage
    • Параметры:
      • key (строка): Ключ для установки
      • value (строка): Значение для установки
    • Только чтение: false
  • browser_set_storage_state
    • Название: Восстановить состояние хранилища
    • Описание: Восстановить состояние хранилища (cookies, local storage) из файла. Существующие cookies и local storage будут очищены перед восстановлением.
    • Параметры:
      • filename (строка): Путь к файлу состояния хранилища для восстановления
    • Только чтение: false
  • browser_storage_state
    • Название: Сохранить состояние хранилища
    • Описание: Сохранить состояние хранилища (cookies, local storage) в файл для последующего использования
    • Параметры:
      • filename (строка, необязательно): Имя файла для сохранения состояния хранилища. Если не указано, используется storage-state-{timestamp}.json.
    • Только чтение: true
Инструменты разработчика (опционально через --caps=devtools)
  • browser_annotate
    • Название: Аннотировать текущую страницу
    • Описание: Открыть панель Playwright Dashboard в режиме аннотирования для текущей страницы и ожидать, пока пользователь нарисует аннотации. Возвращает аннотированный скриншот, снимок ARIA и список аннотаций.
    • Параметры: Нет
    • Только чтение: true
  • browser_hide_highlight
    • Название: Скрыть подсветку элемента
    • Описание: Удалить наложенную подсветку, ранее добавленную для элемента.
    • Параметры:
      • element (строка, необязательно): Человекочитаемое описание элемента, использованное при добавлении подсветки; должно совпадать со значением, переданным в browser_highlight.
      • target (строка, необязательно): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
    • Только чтение: true
  • browser_highlight
    • Название: Подсветить элемент
    • Описание: Показать постоянную подсветку вокруг элемента на странице.
    • Параметры:
      • element (строка, необязательно): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
      • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
      • style (строка, необязательно): Дополнительный встроенный CSS, применяемый к наложенной подсветке, например, "outline: 2px dashed red".
    • Только чтение: true
  • browser_resume
    • Название: Возобновить приостановленное выполнение скрипта
    • Описание: Возобновить выполнение скрипта после его приостановки. При вызове с параметром step, равным true, выполнение снова приостановится перед следующим действием.
    • Параметры:
      • step (логическое, необязательно): Если true, выполнение снова приостановится перед следующим действием, позволяя выполнять пошаговую отладку.
      • location (строка, необязательно): Приостановить выполнение на определенном :, например, "example.spec.ts:42".
    • Только чтение: false
  • browser_start_tracing
    • Название: Начать трассировку
    • Описание: Начать запись трассировки
    • Параметры: Нет
    • Только чтение: true
  • browser_start_video
    • Название: Начать запись видео
    • Описание: Начать запись видео
    • Параметры:
      • filename (строка, необязательно): Имя файла для сохранения видео.
      • size (объект, необязательно): Размер видео
    • Только чтение: true
  • browser_stop_tracing
    • Название: Остановить трассировку
    • Описание: Остановить запись трассировки
    • Параметры: Нет
    • Только чтение: true
  • browser_stop_video
    • Название: Остановить запись видео
    • Описание: Остановить запись видео
    • Параметры: Нет
    • Только чтение: true
  • browser_video_chapter
    • Название: Глава видео
    • Описание: Добавить маркер главы в видеозапись. Показывает полноэкранную карточку главы с размытым фоном.
    • Параметры:
      • title (строка): Название главы
      • description (строка, необязательно): Описание главы
      • duration (число, необязательно): Длительность отображения карточки главы в миллисекундах
    • Только чтение: true
  • browser_video_hide_actions
    • Название: Скрыть наложения действий
    • Описание: Прекратить аннотирование действий, выполняемых на странице.
    • Параметры: Нет
    • Только чтение: true
  • browser_video_show_actions
    • Название: Показать наложения действий
    • Описание: Аннотировать последующие действия, выполняемые на странице, с помощью выноски, которая называет действие и подсвечивает целевой элемент. Полезно при записи видео или скринкаста.
    • Параметры:
      • duration (число, необязательно): Как долго каждая аннотация действия остается на экране, в миллисекундах. По умолчанию 500.
      • position (строка, необязательно): Где разместить заголовок действия относительно страницы. По умолчанию top-right.
      • cursor (строка, необязательно): Оформление курсора для действий указателя. "pointer" (по умолчанию) анимирует указатель мыши от предыдущей точки действия к следующей; "none" отключает оформление курсора.
    • Только чтение: true
На основе координат (включается через --caps=vision)
  • browser_mouse_click_xy
    • Название: Клик
    • Описание: Нажать кнопку мыши в заданной позиции
    • Параметры:
      • x (число): Координата X
      • y (число): Координата Y
      • button (строка, необязательно): Кнопка для клика, по умолчанию левая
      • clickCount (число, необязательно): Количество кликов, по умолчанию 1
      • delay (число, необязательно): Время ожидания между нажатием и отпусканием кнопки мыши в миллисекундах, по умолчанию 0
    • Только чтение: false
  • browser_mouse_down
    • Название: Нажать кнопку мыши
    • Описание: Нажать кнопку мыши
    • Параметры:
      • button (строка, необязательно): Кнопка для нажатия, по умолчанию левая
    • Только чтение: false
  • browser_mouse_drag_xy
    • Название: Перетаскивание мыши
    • Описание: Перетащить левую кнопку мыши в заданную позицию
    • Параметры:
      • startX (число): Начальная координата X
      • startY (число): Начальная координата Y
      • endX (число): Конечная координата X
      • endY (число): Конечная координата Y
    • Только чтение: false
  • browser_mouse_move_xy
    • Название: Переместить мышь
    • Описание: Переместить мышь в заданную позицию
    • Параметры:
      • x (число): Координата X
      • y (число): Координата Y
    • Только чтение: false
  • browser_mouse_up
    • Название: Отпустить кнопку мыши
    • Описание: Отпустить кнопку мыши
    • Параметры:
      • button (строка, необязательно): Кнопка для отпускания, по умолчанию левая
    • Только чтение: false
  • browser_mouse_wheel
    • Название: Прокрутка колесика мыши
    • Описание: Прокрутить колесико мыши
    • Параметры:
      • deltaX (число): Смещение по X
      • deltaY (число): Смещение по Y
    • Только чтение: false
Генерация PDF (включается через --caps=pdf)
  • browser_pdf_save
    • Название: Сохранить как PDF
    • Описание: Сохранить страницу как PDF
    • Параметры:
      • filename (строка, необязательно): Имя файла для сохранения PDF. Если не указано, используется page-{timestamp}.pdf. Рекомендуется использовать относительные имена файлов, чтобы оставаться в выходном каталоге.
    • Только чтение: true
Тестовые утверждения (включается через --caps=testing)
  • browser_generate_locator
    • Название: Создать локатор для элемента
    • Описание: Сгенерировать локатор для указанного элемента для использования в тестах
    • Параметры:
      • element (строка, необязательно): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
      • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
    • Только чтение: true
  • browser_verify_element_visible
    • Название: Проверить видимость элемента
    • Описание: Проверить, что элемент виден на странице
    • Параметры:
      • role (строка): ROLE элемента. Можно найти в снимке следующим образом: - {ROLE} "Accessible Name":
      • accessibleName (строка): ACCESSIBLE_NAME элемента. Можно найти в снимке следующим образом: - role "{ACCESSIBLE_NAME}"
    • Только чтение: false
  • browser_verify_list_visible
    • Название: Проверить видимость списка
    • Описание: Проверить, что список виден на странице
    • Параметры:
      • element (строка): Человекочитаемое описание списка
      • target (строка): Точная ссылка на целевой элемент, указывающая на список
      • items (массив): Элементы для проверки
    • Только чтение: false
  • browser_verify_text_visible
    • Название: Проверить видимость текста
    • Описание: Проверить, что текст виден на странице. По возможности предпочтительнее использовать browser_verify_element_visible.
    • Параметры:
      • text (строка): TEXT для проверки. Можно найти в снимке следующим образом: - role "Accessible Name": {TEXT} или следующим образом: - text: {TEXT}
    • Только чтение: false
  • browser_verify_value
    • Название: Проверить значение
    • Описание: Проверить значение элемента
    • Параметры:
      • type (строка): Тип элемента
      • element (строка): Человекочитаемое описание элемента
      • target (строка): Точная ссылка на целевой элемент из снимка страницы
      • value (строка): Значение для проверки. Для чекбокса используйте "true" или "false".
    • Только чтение: false