Playwright MCP

by Microsoft (open source) · Claude Desktop, Claude Code, OpenCode, любой MCP-клиент

MCP MCP Servers Open Source ★ Must have v0.0.77 · 29.06.2026 активный

Официальный MCP-сервер от Microsoft для управления браузером через Playwright. Использует accessibility tree вместо скриншотов — быстрее, точнее, не требует vision-модели. Идеален для web-автоматизации и тестирования. Возможности: - Навигация по URL, клики, ввод текста, скролл - Работа с формами, дропдаунами, чекбоксами - Снятие скриншотов страниц и элементов - Выполнение JavaScript в контексте страницы - Перехват и анализ сетевых запросов - Режим headed (с UI) и headless - Поддержка Chrome, Firefox, Safari

v0.0.77
29.06.2026 current
Добавлен 19.06.2026 · Обновлён 24.07.2026 · MCP Servers
Установка
# Claude Desktop — claude_desktop_config.json:
```json
{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}
```

# Claude Code (CLI):
```bash
claude mcp add playwright -- npx @playwright/mcp@latest
```

# OpenCode — ~/.config/opencode/opencode.json:
```json
{
  "mcp": {
    "playwright": {
      "type": "local",
      "command": ["npx", "@playwright/mcp@latest"]
    }
  }
}
```

Установить браузеры: `npx playwright install`

Для headless-режима добавьте аргумент `"--headless"` в args.
переведено ИИ

Playwright MCP

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

Playwright MCP vs Playwright CLI

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

  • CLI: Современные кодирующие агенты все чаще предпочитают рабочие процессы, основанные на CLI и предоставляемые в виде SKILL'ов, а не MCP, поскольку вызовы CLI более эффективны с точки зрения токенов: они позволяют избежать загрузки больших схем инструментов и многословных деревьев доступности в контекст модели, позволяя агентам действовать через краткие, целевые команды. Это делает CLI + SKILL'и более подходящими для высокопроизводительных кодирующих агентов, которым необходимо сочетать автоматизацию браузера с большими кодовыми базами, тестами и рассуждениями в рамках ограниченного контекста.
    Узнайте больше о 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"
  ]
}
}

Настройка CLI для Amp:

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

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

Antigravity

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

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

Claude Code

Используйте CLI Claude Code для добавления сервера 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

Используйте CLI Codex для добавления сервера 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

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

/mcp add

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

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

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

Cursor

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

Install in Cursor

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

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

Factory

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

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

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

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

Gemini CLI

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

Goose

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

Install in Goose

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

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

Grok

Используйте CLI Grok для добавления сервера 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 в CLI Junie:

  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 -> Подключить дополнительные инструменты -> + Add new MCP -> Вставьте стандартную конфигурацию выше.

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

VS Code

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

Установить в VS Code Установить в VS Code Insiders

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

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

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

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

Warp

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

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

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

Windsurf

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

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

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

Опция Описание
--allowed-hosts разделенный запятыми список хостов, которым разрешено обслуживать этот сервер. По умолчанию используется хост, к которому привязан сервер. Передайте '', чтобы отключить проверку хоста.
env* PLAYWRIGHT_MCP_ALLOWED_HOSTS
--allowed-origins разделенный точкой с запятой список ДОВЕРЕННЫХ источников, разрешенных для запросов браузером. По умолчанию разрешены все. Важно: не служит границей безопасности и не влияет на перенаправления.
env PLAYWRIGHT_MCP_ALLOWED_ORIGINS
--allow-unrestricted-file-access разрешает доступ к файлам за пределами корней рабочей области. Также разрешает неограниченный доступ к URL-адресам file://. По умолчанию доступ к файловой системе ограничен только корневыми директориями рабочей области (или текущей рабочей директорией, если корни не настроены), а переход по URL-адресам file:// заблокирован.
env PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS
--blocked-origins разделенный точкой с запятой список источников, заблокированных для запросов браузером. Блок-лист проверяется перед разрешающим списком. Если используется без разрешающего списка, запросы, не соответствующие блок-листу, по-прежнему разрешены. Важно: не служит границей безопасности и не влияет на перенаправления.
env PLAYWRIGHT_MCP_BLOCKED_ORIGINS
--block-service-workers блокирует воркеры обслуживания (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 заголовки 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 список разрешений для предоставления контексту браузера, например "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 путь к файлу TypeScript для выполнения на объекте страницы Playwright
env PLAYWRIGHT_MCP_INIT_PAGE
--init-script путь к файлу 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 позволяет подключаться к существующим вкладкам браузера и использовать ваши сессии входа и состояние браузера. Инструкции по установке и настройке см. в microsoft/playwright › packages/extension.

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

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

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

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

  • --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

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

npx @playwright/mcp@latest --port 8931

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

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

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

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

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": "привет", "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 (строка, необязательный): Обычный текст для поиска в снимке страницы (поиск подстроки без учёта регистра). Укажите либо text, либо regex, но не оба.
  • regex (строка, необязательный): Регулярное выражение для поиска в снимке страницы. Совпадение по умолчанию чувствительно к регистру; чтобы добавить флаги, оберните паттерн в слэши, например "/error/i" для поиска без учёта регистра. Укажите либо text, либо regex, но не оба.
  • Только для чтения: 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 (строка, необязательный): Загрузить код из указанного файла. Если указаны оба параметра, code будет проигнорирован.
  • Только для чтения: 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
  • Заголовок: Получить конфигурацию
  • Описание: Получить окончательную разрешённую конфигурацию после объединения параметров командной строки, переменных окружения и файла конфигурации.
  • Параметры: Нет
  • Только для чтения: 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
  • Название: Очистить файлы cookie
  • Описание: Очистить все файлы cookie
  • Параметры: Отсутствуют
  • Только для чтения: false
  • browser_cookie_delete
  • Название: Удалить файл cookie
  • Описание: Удалить определённый файл cookie
  • Параметры:
  • name (строка): Имя файла cookie для удаления
  • Только для чтения: false
  • browser_cookie_get
  • Название: Получить файл cookie
  • Описание: Получить определённый файл cookie по имени
  • Параметры:
  • name (строка): Имя файла cookie для получения
  • Только для чтения: true
  • browser_cookie_list
  • Название: Список файлов cookie
  • Описание: Вывести список всех файлов cookie (опционально с фильтрацией по домену/пути)
  • Параметры:
  • domain (строка, необязательный): Фильтровать файлы cookie по домену
  • path (строка, необязательный): Фильтровать файлы cookie по пути
  • Только для чтения: true
  • browser_cookie_set
  • Название: Установить файл cookie
  • Описание: Установить файл cookie с опциональными флагами (domain, path, expires, httpOnly, secure, sameSite)
  • Параметры:
  • name (строка): Имя файла cookie
  • value (строка): Значение файла cookie
  • domain (строка, необязательный): Домен файла cookie
  • path (строка, необязательный): Путь файла cookie
  • expires (число, необязательный): Срок истечения файла cookie в формате Unix-временной метки
  • httpOnly (boolean, необязательный): Является ли файл cookie доступным только через HTTP
  • secure (boolean, необязательный): Является ли файл 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
  • Название: Восстановить состояние хранилища
  • Описание: Восстановить состояние хранилища (cookie, локальное хранилище) из файла. При восстановлении существующие cookie и локальное хранилище очищаются.
  • Параметры:
  • filename (строка): Путь к файлу состояния хранилища для восстановления
  • Только для чтения: false
  • browser_storage_state
  • Название: Сохранить состояние хранилища
  • Описание: Сохранить состояние хранилища (cookie, локальное хранилище) в файл для последующего повторного использования
  • Параметры:
  • filename (строка, необязательный): Имя файла для сохранения состояния хранилища. По умолчанию используется storage-state-{timestamp}.json, если не указано.
  • Только для чтения: true

DevTools (подключается через --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 (boolean, необязательный): Если true, выполнение будет снова приостановлено перед следующим действием, что позволяет проводить пошаговую отладку.
  • location (строка, необязательный): Приостановить выполнение на определённом <файл>:<строка>, например "example.spec.ts:42".
  • Только для чтения: false

- browser_start_tracing

  • Title: Начать трассировку
  • Description: Начать запись трассировки
  • Parameters: Нет
  • Read-only: true
  • browser_start_video
  • Title: Начать видео
  • Description: Начать запись видео
  • Parameters:
  • filename (строка, необязательно): Имя файла для сохранения видео.
  • size (объект, необязательно): Размер видео
  • Read-only: true
  • browser_stop_tracing
  • Title: Остановить трассировку
  • Description: Остановить запись трассировки
  • Parameters: Нет
  • Read-only: true
  • browser_stop_video
  • Title: Остановить видео
  • Description: Остановить запись видео
  • Parameters: Нет
  • Read-only: true
  • browser_video_chapter
  • Title: Глава видео
  • Description: Добавить маркер главы в запись видео. Отображает полноэкранную карточку главы с размытым фоном.
  • Parameters:
  • title (строка): Название главы
  • description (строка, необязательно): Описание главы
  • duration (число, необязательно): Продолжительность отображения карточки главы в миллисекундах
  • Read-only: true
  • browser_video_hide_actions
  • Title: Скрыть оверлеи действий
  • Description: Остановить аннотацию действий, выполняемых на странице.
  • Parameters: Нет
  • Read-only: true
  • browser_video_show_actions
  • Title: Показать оверлеи действий
  • Description: Аннотировать последующие действия на странице с помощью всплывающего окна, которое называет действие и выделяет целевой элемент. Полезно при записи видео или скринкасте.
  • Parameters:
  • duration (число, необязательно): Как долго каждая аннотация действия остается на экране, в миллисекундах. По умолчанию 500.
  • position (строка, необязательно): Где разместить заголовок действия относительно страницы. По умолчанию top-right.
  • cursor (строка, необязательно): Декорация курсора для действий указателя. "pointer" (по умолчанию) анимирует перемещение указателя мыши от точки предыдущего действия к следующей; "none" отключает декорацию курсора.
  • Read-only: true

На основе координат (подключается через --caps=vision)

  • browser_mouse_click_xy
  • Title: Клик
  • Description: Нажать кнопку мыши в указанной позиции
  • Parameters:
  • x (число): Координата X
  • y (число): Координата Y
  • button (строка, необязательно): Кнопка для нажатия, по умолчанию левая
  • clickCount (число, необязательно): Количество кликов, по умолчанию 1
  • delay (число, необязательно): Время ожидания между нажатием и отпусканием кнопки мыши в миллисекундах, по умолчанию 0
  • Read-only: false
  • browser_mouse_down
  • Title: Нажать кнопку мыши
  • Description: Нажать кнопку мыши
  • Parameters:
  • button (строка, необязательно): Кнопка для нажатия, по умолчанию левая
  • Read-only: false
  • browser_mouse_drag_xy
  • Title: Перетащить мышь
  • Description: Перетащить левую кнопку мыши в указанную позицию
  • Parameters:
  • startX (число): Начальная координата X
  • startY (число): Начальная координата Y
  • endX (число): Конечная координата X
  • endY (число): Конечная координата Y
  • Read-only: false
  • browser_mouse_move_xy
  • Title: Переместить мышь
  • Description: Переместить мышь в указанную позицию
  • Parameters:
  • x (число): Координата X
  • y (число): Координата Y
  • Read-only: false
  • browser_mouse_up
  • Title: Отпустить кнопку мыши
  • Description: Отпустить кнопку мыши
  • Parameters:
  • button (строка, необязательно): Кнопка для отпускания, по умолчанию левая
  • Read-only: false
  • browser_mouse_wheel
  • Title: Прокрутить колесо мыши
  • Description: Прокрутить колесо мыши
  • Parameters:
  • deltaX (число): Дельта по X
  • deltaY (число): Дельта по Y
  • Read-only: false

Генерация PDF (подключается через --caps=pdf)

  • browser_pdf_save
  • Title: Сохранить как PDF
  • Description: Сохранить страницу как PDF
  • Parameters:
  • filename (строка, необязательно): Имя файла для сохранения pdf. Если не указано, используется page-{timestamp}.pdf. Рекомендуется использовать относительные имена файлов, чтобы оставаться в пределах каталога вывода.
  • Read-only: true

Проверки в тестах (подключается через --caps=testing)

  • browser_generate_locator
  • Title: Создать локатор для элемента
  • Description: Сгенерировать локатор для указанного элемента для использования в тестах
  • Parameters:
  • element (строка, необязательно): Читаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом
  • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента
  • Read-only: true
  • browser_verify_element_visible
  • Title: Проверить видимость элемента
  • Description: Проверить, что элемент виден на странице
  • Parameters:
  • role (строка): РОЛЬ элемента. Можно найти в снимке так: - {ROLE} "Доступное имя":
  • accessibleName (строка): ДОСТУПНОЕ_ИМЯ элемента. Можно найти в снимке так: - role "{ДОСТУПНОЕ_ИМЯ}"
  • Read-only: false
  • browser_verify_list_visible
  • Title: Проверить видимость списка
  • Description: Проверить, что список виден на странице
  • Parameters:
  • element (строка): Читаемое описание списка
  • target (строка): Точная ссылка на целевой элемент, указывающая на список
  • items (массив): Элементы для проверки
  • Read-only: false
  • browser_verify_text_visible
  • Title: Проверить видимость текста
  • Description: Проверить, что текст виден на странице. Если возможно, используйте browser_verify_element_visible.
  • Parameters:
  • text (строка): ТЕКСТ для проверки. Можно найти в снимке так: - role "Доступное имя": {ТЕКСТ} или так: - text: {ТЕКСТ}
  • Read-only: false
  • browser_verify_value
  • Title: Проверить значение
  • Description: Проверить значение элемента
  • Parameters:
  • type (строка): Тип элемента
  • element (строка): Читаемое описание элемента
  • target (строка): Точная ссылка на целевой элемент из снимка страницы
  • value (строка): Значение для проверки. Для флажков используйте "true" или "false".
  • Read-only: false
Комментарии
Войдите, чтобы оставить комментарий