Playwright MCP
oficialServidor oficial Playwright MCP para automação de navegador, inspeção de páginas, capturas de tela e interação web a partir do Claude, Cursor e outros agentes de IA.
O que você pode fazer com Playwright MCP?
- Navegar e interagir com páginas da web — peça ao assistente para abrir uma URL, clicar em elementos, preencher formulários ou extrair instantâneos estruturados de acessibilidade usando a automação de navegador do Playwright.
- Configurar o comportamento do navegador — defina o tipo de navegador, tamanho da janela de visualização, emulação de dispositivo ou agente do usuário através dos argumentos
--browser,--device,--viewport-sizee--user-agent. - Gerenciar sessões e autenticação — use perfis persistentes (
--user-data-dir), sessões isoladas (--isolated) ou arquivos de estado de armazenamento (--storage-state) para controlar o estado de login entre execuções. - Conectar a um navegador existente — anexe a uma instância em execução do Chrome ou Edge com a flag
--extensionpara reutilizar sessões logadas sem reautenticar. - Controlar saída e instantâneos — capture mensagens do console, logs de rede e instantâneos de acessibilidade em arquivos ou stdout usando
--output-dir,--output-modee--snapshot-mode.
Documentação
Playwright MCP
Um servidor Model Context Protocol (MCP) que fornece capacidades de automação de navegador usando Playwright. Este servidor permite que LLMs interajam com páginas web através de snapshots de acessibilidade estruturados, eliminando a necessidade de capturas de tela ou modelos sintonizados visualmente.
Playwright MCP vs Playwright CLI
Este pacote fornece uma interface MCP para o Playwright. Se você está usando um agente de codificação, pode se beneficiar ao usar o CLI+SKILLS.
-
CLI: Agentes de codificação modernos preferem cada vez mais fluxos de trabalho baseados em CLI expostos como SKILLs em vez de MCP, porque as invocações de CLI são mais eficientes em tokens: elas evitam carregar grandes esquemas de ferramentas e árvores de acessibilidade detalhadas no contexto do modelo, permitindo que os agentes atuem através de comandos concisos e específicos. Isso torna CLI + SKILLS mais adequado para agentes de codificação de alto rendimento que precisam equilibrar a automação do navegador com grandes bases de código, testes e raciocínio dentro de janelas de contexto limitadas.
Saiba mais sobre Playwright CLI com SKILLS. -
MCP: O MCP permanece relevante para loops agênticos especializados que se beneficiam de estado persistente, introspecção rica e raciocínio iterativo sobre a estrutura da página, como automação exploratória, testes de auto-recuperação ou fluxos de trabalho autônomos de longa duração, onde manter o contexto contínuo do navegador supera as preocupações com custo de tokens.
Principais Características
- Rápido e leve. Usa a árvore de acessibilidade do Playwright, não entrada baseada em pixels.
- Amigável para LLMs. Não requer modelos de visão, opera puramente com dados estruturados.
- Aplicação determinística de ferramentas. Evita a ambiguidade comum em abordagens baseadas em capturas de tela.
Requisitos
- Node.js 18 ou mais recente
- VS Code, Cursor, Windsurf, Claude Desktop, Goose, Grok, Junie ou qualquer outro cliente MCP
Primeiros passos
Primeiro, instale o servidor Playwright MCP com seu cliente.
A configuração padrão funciona na maioria das ferramentas:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
}
Amp
Adicione através da tela de configurações da extensão Amp VS Code ou atualizando seu arquivo settings.json:
"amp.mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
Configuração via Amp CLI:
Adicione através do comando amp mcp add abaixo
amp mcp add playwright -- npx @playwright/mcp@latest
Antigravity
Adicione através das configurações do Antigravity ou atualizando seu arquivo de configuração:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
}
Claude Code
Use a CLI do Claude Code para adicionar o servidor Playwright MCP:
claude mcp add playwright npx @playwright/mcp@latest
Claude Desktop
Siga o guia de instalação do MCP, use a configuração padrão acima.
Cline
Siga as instruções na seção Configurando Servidores MCP
Exemplo: Configuração Local
Adicione o seguinte ao seu arquivo cline_mcp_settings.json:
{
"mcpServers": {
"playwright": {
"type": "stdio",
"command": "npx",
"timeout": 30,
"args": [
"-y",
"@playwright/mcp@latest"
],
"disabled": false
}
}
}
Codex
Use a CLI do Codex para adicionar o servidor Playwright MCP:
codex mcp add playwright npx "@playwright/mcp@latest"
Alternativamente, crie ou edite o arquivo de configuração ~/.codex/config.toml e adicione:
[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]
Para mais informações, veja a documentação do Codex MCP.
Copilot
Use a CLI do Copilot para adicionar interativamente o servidor Playwright MCP:
/mcp add
Alternativamente, crie ou edite o arquivo de configuração ~/.copilot/mcp-config.json e adicione:
{
"mcpServers": {
"playwright": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"@playwright/mcp@latest"
]
}
}
}
Para mais informações, veja a documentação da CLI do Copilot.
Cursor
Clique no botão para instalar:
Ou instale manualmente:
Vá para Cursor Settings -> MCP -> Add new MCP Server. Dê o nome que preferir, use o tipo command com o comando npx @playwright/mcp@latest. Você também pode verificar a configuração ou adicionar argumentos de comando clicando em Edit.
Factory
Use a CLI do Factory para adicionar o servidor Playwright MCP:
droid mcp add playwright "npx @playwright/mcp@latest"
Alternativamente, digite /mcp dentro do droid Factory para abrir uma interface interativa para gerenciar servidores MCP.
Para mais informações, veja a documentação do Factory MCP.
Gemini CLI
Siga o guia de instalação do MCP, use a configuração padrão acima.
Goose
Clique no botão para instalar:
Ou instale manualmente:
Vá para Advanced settings -> Extensions -> Add custom extension. Dê o nome que preferir, use o tipo STDIO, e defina command para npx @playwright/mcp. Clique em "Add Extension".
Grok
Use a CLI do Grok para adicionar o servidor Playwright MCP:
grok mcp add playwright -- npx @playwright/mcp@latest
Alternativamente, crie ou edite o arquivo de configuração ~/.grok/config.toml e adicione:
[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]
Para mais informações, veja a documentação do Grok MCP.
Junie
Para adicionar o servidor Playwright MCP na CLI do Junie:
- Digite
/mcp - Pressione
Ctrl+Apara adicionar um novo servidor MCP - Selecione Playwright na lista
Alternativamente, adicione ao .junie/mcp/mcp.json:
{
"mcpServers": {
"Playwright": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@latest"
]
}
}
}
Para mais informações, veja a documentação de configuração do Junie MCP.
Kiro
Siga a documentação de Servidores MCP. Por exemplo, em .kiro/settings/mcp.json:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
}
LM Studio
Clique no botão para instalar:
Ou instale manualmente:
Vá para Program na barra lateral direita -> Install -> Edit mcp.json. Use a configuração padrão acima.
opencode
Siga a documentação de Servidores MCP. Por exemplo, em ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"playwright": {
"type": "local",
"command": [
"npx",
"@playwright/mcp@latest"
],
"enabled": true
}
}
}
Qodo Gen
Abra o painel de chat do Qodo Gen no VSCode ou IntelliJ → Conectar mais ferramentas → + Adicionar novo MCP → Cole a configuração padrão acima.
Clique em Salvar.
VS Code
Clique no botão para instalar:
Ou instale manualmente:
Siga o guia de instalação do MCP, use a configuração padrão acima. Você também pode instalar o servidor Playwright MCP usando a CLI do VS Code:
# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'
Após a instalação, o servidor Playwright MCP estará disponível para uso com seu agente GitHub Copilot no VS Code.
Warp
Vá para Settings -> AI -> Manage MCP Servers -> + Add para adicionar um Servidor MCP. Use a configuração padrão acima.
Alternativamente, use o comando de barra /add-mcp no prompt do Warp e cole a configuração padrão acima:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
}
}
}
Windsurf
Siga a documentação do Windsurf MCP. Use a configuração padrão acima.
Configuração
O servidor Playwright MCP suporta os seguintes argumentos. Eles podem ser fornecidos na configuração JSON acima, como parte da lista "args":
|--------|-------------|
| --allowed-hosts <hosts...> | lista separada por vírgulas de hosts dos quais este servidor tem permissão para servir. O padrão é o host ao qual o servidor está vinculado. Passe '*' para desabilitar a verificação de host.
env PLAYWRIGHT_MCP_ALLOWED_HOSTS |
| --allowed-origins | lista separada por ponto e vírgula de origens CONFIÁVEIS que o navegador tem permissão para solicitar. O padrão é permitir todas. Importante: não serve como limite de segurança e não afeta redirecionamentos.
env PLAYWRIGHT_MCP_ALLOWED_ORIGINS |
| --allow-unrestricted-file-access | permite acesso a arquivos fora das raízes do espaço de trabalho. Também permite acesso irrestrito a URLs file://. Por padrão, o acesso ao sistema de arquivos é restrito apenas aos diretórios raiz do espaço de trabalho (ou cwd se nenhuma raiz estiver configurada), e a navegação para URLs file:// é bloqueada.
env PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS |
| --blocked-origins | lista separada por ponto e vírgula de origens que o navegador deve bloquear de solicitar. A lista de bloqueio é avaliada antes da lista de permissões. Se usada sem a lista de permissões, as solicitações que não correspondem à lista de bloqueio ainda são permitidas. Importante: não serve como limite de segurança e não afeta redirecionamentos.
env PLAYWRIGHT_MCP_BLOCKED_ORIGINS |
| --block-service-workers | bloqueia service workers
env PLAYWRIGHT_MCP_BLOCK_SERVICE_WORKERS |
| --browser | navegador ou canal do Chrome a ser usado, valores possíveis: chrome, firefox, webkit, msedge.
env PLAYWRIGHT_MCP_BROWSER |
| --caps | lista separada por vírgulas de capacidades adicionais a serem habilitadas, valores possíveis: vision, pdf, devtools.
env PLAYWRIGHT_MCP_CAPS |
| --cdp-endpoint | endpoint CDP ao qual se conectar.
env PLAYWRIGHT_MCP_CDP_ENDPOINT |
| --cdp-header <headers...> | cabeçalhos CDP a serem enviados com a solicitação de conexão, vários podem ser especificados.
env PLAYWRIGHT_MCP_CDP_HEADERS |
| --cdp-timeout | tempo limite em milissegundos para conectar ao endpoint CDP, padrão de 30000ms
env PLAYWRIGHT_MCP_CDP_TIMEOUT |
| --codegen | especifica a linguagem a ser usada para geração de código, valores possíveis: "typescript", "none". O padrão é "typescript".
env PLAYWRIGHT_MCP_CODEGEN |
| --config | caminho para o arquivo de configuração.
env PLAYWRIGHT_MCP_CONFIG |
| --console-level | nível de mensagens do console a serem retornadas: "error", "warning", "info", "debug". Cada nível inclui as mensagens dos níveis mais severos.
env PLAYWRIGHT_MCP_CONSOLE_LEVEL |
| --device | dispositivo a ser emulado, por exemplo: "iPhone 15"
env PLAYWRIGHT_MCP_DEVICE |
| --mobile | emula um dispositivo móvel genérico (Pixel 10 para Chromium, iPhone 17 para WebKit). Páginas móveis geralmente são mais leves, o que economiza tokens. Não pode ser combinado com --device.
env PLAYWRIGHT_MCP_MOBILE |
| --executable-path | caminho para o executável do navegador.
env PLAYWRIGHT_MCP_EXECUTABLE_PATH |
| --extension | Conecta-se a uma instância de navegador em execução (somente Edge/Chrome). Requer que a "Playwright Extension" esteja instalada.
env PLAYWRIGHT_MCP_EXTENSION |
| --endpoint | endpoint do navegador vinculado ao qual se conectar.
env PLAYWRIGHT_MCP_ENDPOINT |
| --grant-permissions <permissions...> | Lista de permissões a serem concedidas ao contexto do navegador, por exemplo "geolocation", "clipboard-read", "clipboard-write".
env PLAYWRIGHT_MCP_GRANT_PERMISSIONS |
| --headless | executa o navegador em modo headless, modo headed por padrão
env PLAYWRIGHT_MCP_HEADLESS |
| --host | host ao qual vincular o servidor. O padrão é localhost. Use 0.0.0.0 para vincular a todas as interfaces.
env PLAYWRIGHT_MCP_HOST |
| --ignore-https-errors | ignora erros https
env PLAYWRIGHT_MCP_IGNORE_HTTPS_ERRORS |
| --init-page <path...> | caminho para o arquivo TypeScript a ser avaliado no objeto de página do Playwright
env PLAYWRIGHT_MCP_INIT_PAGE |
| --init-script <path...> | caminho para o arquivo JavaScript a ser adicionado como um script de inicialização. O script será avaliado em cada página antes de qualquer script da página. Pode ser especificado várias vezes.
env PLAYWRIGHT_MCP_INIT_SCRIPT |
| --isolated | mantém o perfil do navegador na memória, não o salva no disco.
env PLAYWRIGHT_MCP_ISOLATED |
| --image-responses | se deve enviar respostas de imagem para o cliente. Pode ser "allow" ou "omit", o padrão é "allow".
env PLAYWRIGHT_MCP_IMAGE_RESPONSES |
| --no-sandbox | desabilita o sandbox para todos os tipos de processo que normalmente são isolados em sandbox.
env PLAYWRIGHT_MCP_NO_SANDBOX |
| --output-dir | caminho para o diretório de arquivos de saída.
env PLAYWRIGHT_MCP_OUTPUT_DIR |
| --output-max-size | Limite para remoção de arquivos de saída antigos, em bytes.
env PLAYWRIGHT_MCP_OUTPUT_MAX_SIZE |
| --output-mode | se deve salvar snapshots, mensagens do console, logs de rede em um arquivo ou na saída padrão. Pode ser "file" ou "stdout". O padrão é "stdout".
env PLAYWRIGHT_MCP_OUTPUT_MODE |
| --port | porta para escutar o transporte SSE.
env PLAYWRIGHT_MCP_PORT |
| --proxy-bypass | domínios separados por vírgula para ignorar o proxy, por exemplo ".com,chromium.org,.domain.com"
env PLAYWRIGHT_MCP_PROXY_BYPASS |
| --proxy-server | especifica o servidor proxy, por exemplo "http://myproxy:3128" ou "socks5://myproxy:8080"
env PLAYWRIGHT_MCP_PROXY_SERVER |
| --sandbox | habilita o sandbox para todos os tipos de processo que normalmente não são isolados em sandbox.
env PLAYWRIGHT_MCP_SANDBOX |
| --save-session | Se deve salvar a sessão do Playwright MCP no diretório de saída.
env PLAYWRIGHT_MCP_SAVE_SESSION |
| --secrets | caminho para um arquivo contendo segredos no formato dotenv
env PLAYWRIGHT_MCP_SECRETS_FILE |
| --shared-browser-context | reutiliza o mesmo contexto de navegador entre todos os clientes HTTP conectados.
env PLAYWRIGHT_MCP_SHARED_BROWSER_CONTEXT |
| --snapshot-mode | ao tirar snapshots para respostas, especifica o modo a ser usado. Pode ser "full" ou "none". O padrão é "full".
env PLAYWRIGHT_MCP_SNAPSHOT_MODE |
| --storage-state | caminho para o arquivo de estado de armazenamento para sessões isoladas.
env PLAYWRIGHT_MCP_STORAGE_STATE |
| --test-id-attribute | especifica o atributo a ser usado para ids de teste, o padrão é "data-testid"
env PLAYWRIGHT_MCP_TEST_ID_ATTRIBUTE |
| --timeout-action | especifica o tempo limite da ação em milissegundos, o padrão é 5000ms
env PLAYWRIGHT_MCP_TIMEOUT_ACTION |
| --timeout-navigation | especifica o tempo limite de navegação em milissegundos, o padrão é 60000ms
env PLAYWRIGHT_MCP_TIMEOUT_NAVIGATION |
| --user-agent | especifica a string do user agent
env PLAYWRIGHT_MCP_USER_AGENT |
| --user-data-dir | caminho para o diretório de dados do usuário. Se não especificado, um diretório temporário será criado.
env PLAYWRIGHT_MCP_USER_DATA_DIR |
| --viewport-size | especifica o tamanho da janela de visualização do navegador em pixels, por exemplo "1280x720"
env PLAYWRIGHT_MCP_VIEWPORT_SIZE |
Perfil do usuário
Você pode executar o Playwright MCP com perfil persistente como um navegador comum (padrão), em contextos isolados para sessões de teste ou conectar-se ao seu navegador existente usando a extensão do navegador.
Perfil persistente
Todas as informações de login serão armazenadas no perfil persistente, você pode excluí-lo entre as sessões se desejar limpar o estado offline.
O perfil persistente está localizado nos seguintes locais e você pode substituí-lo com o argumento --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} é derivado da raiz do espaço de trabalho do cliente MCP, então projetos diferentes obtêm perfis separados automaticamente.
[!IMPORTANT] Um perfil persistente só pode ser usado por uma instância de navegador por vez, então clientes MCP concorrentes compartilhando o mesmo espaço de trabalho entrarão em conflito. Para executar vários clientes em paralelo, inicie cada cliente adicional com
--isolatedou aponte-o para um--user-data-dirdistinto.
Isolado
No modo isolado, cada sessão é iniciada no perfil isolado. Toda vez que você pedir ao MCP para fechar o navegador,
a sessão é fechada e todo o estado de armazenamento desta sessão é perdido. Você pode fornecer o estado de armazenamento inicial
para o navegador através do contextOptions da configuração ou através do argumento --storage-state. Saiba mais sobre o estado de armazenamento
aqui.
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--isolated",
"--storage-state={path/to/storage.json}"
]
}
}
}
Extensão do Navegador
A Extensão do Playwright MCP para Chrome permite que você se conecte a abas de navegador existentes e aproveite suas sessões logadas e o estado do navegador. Consulte microsoft/playwright › packages/extension para instruções de instalação e configuração.
Estado inicial
Existem várias maneiras de fornecer o estado inicial para o contexto do navegador ou uma página.
Para o estado de armazenamento, você pode:
- Iniciar com um diretório de dados do usuário usando o argumento
--user-data-dir. Isso persistirá todos os dados do navegador entre as sessões. - Iniciar com um arquivo de estado de armazenamento usando o argumento
--storage-state. Isso carregará cookies e armazenamento local do arquivo em um contexto de navegador isolado.
Para o estado da página, você pode usar:
--init-pagepara apontar para um arquivo TypeScript que será avaliado no objeto de página do Playwright. Isso permite que você execute código arbitrário para configurar a página.
// 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-scriptpara apontar para um arquivo JavaScript que será adicionado como um script de inicialização. O script será avaliado em cada página antes de qualquer script da página. Isso é útil para substituir APIs do navegador ou configurar o ambiente.
// init-script.js
window.isPlaywrightMCP = true;
Arquivo de configuração
O servidor Playwright MCP pode ser configurado usando um arquivo de configuração JSON. Você pode especificar o arquivo de configuração
usando a opção de linha de comando --config:
npx @playwright/mcp@latest --config path/to/config.json
Esquema do arquivo de configuração
{
/**
* 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';
}
Servidor MCP autônomo
Ao executar o navegador headed em um sistema sem display ou a partir de processos de trabalho dos IDEs,
execute o servidor MCP a partir do ambiente com o DISPLAY e passe o sinalizador --port para habilitar o transporte HTTP.
npx @playwright/mcp@latest --port 8931
E então, na configuração do cliente MCP, defina o url para o endpoint HTTP:
{
"mcpServers": {
"playwright": {
"url": "http://localhost:8931/mcp"
}
}
}
Segurança
O Playwright MCP não é um limite de segurança. Consulte as Práticas Recomendadas de Segurança do MCP para orientação sobre como proteger sua implantação.
Docker
NOTA: A implementação Docker atualmente suporta apenas chromium headless.
{
"mcpServers": {
"playwright": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "--pull=always", "mcr.microsoft.com/playwright/mcp"]
}
}
}
Ou, se você preferir executar o contêiner como um serviço de longa duração em vez de deixar o cliente MCP iniciá-lo, use:
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
O servidor escutará na porta do host 8931 e poderá ser acessado por qualquer cliente MCP.
Você mesmo pode construir a imagem Docker.
docker build -t mcr.microsoft.com/playwright/mcp .
Uso programático
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);
// ...
});
Ferramentas
Automação principal
- **browser_click**- Título: Clicar
- Descrição: Realiza um clique em uma página da web
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada para obter permissão para interagir com o elementotarget(string): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento únicodoubleClick(boolean, opcional): Se deve realizar um clique duplo em vez de um clique simplesbutton(string, opcional): Botão a clicar, padrão é esquerdomodifiers(array, opcional): Teclas modificadoras a pressionar
- Somente leitura: false
- browser_close
- Título: Fechar navegador
- Descrição: Fecha a página
- Parâmetros: Nenhum
- Somente leitura: false
- browser_console_messages
- Título: Obter mensagens do console
- Descrição: Retorna todas as mensagens do console
- Parâmetros:
level(string): Nível das mensagens do console a retornar. Cada nível inclui as mensagens dos níveis mais severos. Padrão é "info".all(boolean, opcional): Retorna todas as mensagens do console desde o início da sessão, não apenas desde a última navegação. Padrão é false.filename(string, opcional): Nome do arquivo para salvar as mensagens do console. Se não fornecido, as mensagens são retornadas como texto.
- Somente leitura: true
- browser_drag
- Título: Arrastar mouse
- Descrição: Realiza arrastar e soltar entre dois elementos
- Parâmetros:
startElement(string, opcional): Descrição legível do elemento de origem usada para obter permissão para interagir com o elementostartTarget(string): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento únicoendElement(string, opcional): Descrição legível do elemento de destino usada para obter permissão para interagir com o elementoendTarget(string): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento único
- Somente leitura: false
- browser_drop
- Título: Soltar arquivos ou dados em um elemento
- Descrição: Solta arquivos ou dados com tipo MIME em um elemento, como se arrastados de fora da página. Pelo menos um de "paths" ou "data" deve ser fornecido.
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada para obter permissão para interagir com o elementotarget(string): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento únicopaths(array, opcional): Caminhos absolutos para os arquivos a soltar no elemento.data(object, opcional): Dados a soltar, como um mapa de tipo MIME para valor string (ex.: {"text/plain": "hello", "text/uri-list": "https://example.com"}).
- Somente leitura: false
- browser_evaluate
- Título: Avaliar JavaScript
- Descrição: Avalia expressão JavaScript na página ou elemento
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada para obter permissão para interagir com o elementotarget(string, opcional): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento únicofunction(string): () => { /* código / } ou (element) => { / código */ } quando o elemento é fornecidofilename(string, opcional): Nome do arquivo para salvar o resultado. Se não fornecido, o resultado é retornado como texto.
- Somente leitura: false
- browser_file_upload
- Título: Enviar arquivos
- Descrição: Envia um ou vários arquivos
- Parâmetros:
paths(array, opcional): Os caminhos absolutos para os arquivos a enviar. Pode ser um único arquivo ou vários arquivos. Se omitido, o seletor de arquivos é cancelado.
- Somente leitura: false
- browser_fill_form
- Título: Preencher formulário
- Descrição: Preenche vários campos de formulário
- Parâmetros:
fields(array): Campos a preencher
- Somente leitura: false
- browser_find
- Título: Localizar no snapshot da página
- Descrição: Pesquisa o snapshot de acessibilidade da página atual por texto ou uma expressão regular. Retorna nós do snapshot correspondentes com algumas linhas de contexto ao redor (como trechos de pesquisa), cada um exibido sob seu caminho a partir da raiz da árvore, o que é mais econômico do que capturar o snapshot inteiro quando você só precisa localizar um elemento e sua referência.
- Parâmetros:
text(string, opcional): Texto simples a pesquisar no snapshot da página (correspondência de substring sem distinção entre maiúsculas e minúsculas). Forneça text ou regex, não ambos.regex(string, opcional): Expressão regular a pesquisar no snapshot da página. A correspondência diferencia maiúsculas de minúsculas por padrão; envolva o padrão em barras para adicionar flags, ex.: "/error/i" para não diferenciar. Forneça text ou regex, não ambos.
- Somente leitura: true
- browser_handle_dialog
- Título: Manipular um diálogo
- Descrição: Manipula um diálogo
- Parâmetros:
accept(boolean): Se deve aceitar o diálogo.promptText(string, opcional): O texto do prompt no caso de um diálogo de prompt.
- Somente leitura: false
- browser_hover
- Título: Passar o mouse
- Descrição: Passa o mouse sobre um elemento na página
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada para obter permissão para interagir com o elementotarget(string): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento único
- Somente leitura: false
- browser_navigate
- Título: Navegar para uma URL
- Descrição: Navega para uma URL
- Parâmetros:
url(string): A URL para a qual navegar
- Somente leitura: false
- browser_navigate_back
- Título: Voltar
- Descrição: Volta para a página anterior no histórico
- Parâmetros: Nenhum
- Somente leitura: false
- browser_network_request
- Título: Mostrar detalhes da requisição de rede
- Descrição: Retorna detalhes completos (cabeçalhos e corpo) de uma única requisição de rede, ou uma única parte se
partestiver definido. Use o número de browser_network_requests. - Parâmetros:
index(integer): Índice baseado em 1 da requisição, conforme exibido por browser_network_requests.part(string, opcional): Retorna apenas esta parte da requisição. Omita para retornar detalhes completos.filename(string, opcional): Nome do arquivo para salvar o resultado. Se não fornecido, a saída é retornada como texto.
- Somente leitura: true
- browser_network_requests
- Título: Listar requisições de rede
- Descrição: Retorna uma lista numerada de requisições de rede desde o carregamento da página. Use browser_network_request com o número para obter detalhes completos.
- Parâmetros:
static(boolean): Se deve incluir recursos estáticos bem-sucedidos como imagens, fontes, scripts, etc. Padrão é false.filter(string, opcional): Retorna apenas requisições cuja URL corresponda a esta regex (ex.: "/api/.*user").filename(string, opcional): Nome do arquivo para salvar as requisições de rede. Se não fornecido, as requisições são retornadas como texto.
- Somente leitura: true
- browser_press_key
- Título: Pressionar uma tecla
- Descrição: Pressiona uma tecla no teclado
- Parâmetros:
key(string): Nome da tecla a pressionar ou um caractere a gerar, comoArrowLeftoua
- Somente leitura: false
- browser_resize
- Título: Redimensionar janela do navegador
- Descrição: Redimensiona a janela do navegador
- Parâmetros:
width(number): Largura da janela do navegadorheight(number): Altura da janela do navegador
- Somente leitura: false
- browser_run_code_unsafe
- Título: Executar código Playwright (inseguro)
- Descrição: Executa um trecho de código Playwright. Inseguro: executa JavaScript arbitrário no processo do servidor Playwright e é equivalente a RCE.
- Parâmetros:
code(string, opcional): Uma função JavaScript contendo código Playwright a executar. Será invocada com um único argumento, page, que você pode usar para qualquer interação com a página. Por exemplo:async (page) => { await page.getByRole('button', { name: 'Submit' }).click(); return await page.title(); }filename(string, opcional): Carrega código do arquivo especificado. Se ambos code e filename forem fornecidos, code será ignorado.
- Somente leitura: false
- browser_select_option
- Título: Selecionar opção
- Descrição: Seleciona uma opção em um menu suspenso
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada para obter permissão para interagir com o elementotarget(string): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento únicovalues(array): Array de valores a selecionar no menu suspenso. Pode ser um único valor ou vários valores.
- Somente leitura: false
- browser_snapshot
- Título: Snapshot da página
- Descrição: Captura o snapshot de acessibilidade da página atual, isso é melhor que uma captura de tela
- Parâmetros:
target(string, opcional): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento únicofilename(string, opcional): Salva o snapshot em um arquivo markdown em vez de retorná-lo na resposta.depth(number, opcional): Limita a profundidade da árvore do snapshotboxes(boolean, opcional): Inclui a caixa delimitadora de cada elemento como [box=x,y,width,height] no snapshot. As coordenadas são relativas à viewport, em pixels CSS (Element.getBoundingClientRect)
- Somente leitura: true
- browser_take_screenshot
- Título: Fazer uma captura de tela
- Descrição: Faz uma captura de tela da página atual. Você não pode realizar ações com base na captura de tela, use browser_snapshot para ações.
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada para obter permissão para interagir com o elementotarget(string, opcional): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento únicotype(string): Formato de imagem para a captura de tela. Padrão é png.filename(string, opcional): Nome do arquivo para salvar a captura de tela. Padrão épage-{timestamp}.{png|jpeg}se não especificado. Prefira nomes de arquivo relativos para permanecer dentro do diretório de saída.fullPage(boolean, opcional): Quando true, faz uma captura de tela da página inteira com rolagem, em vez da viewport atualmente visível. Não pode ser usado com capturas de tela de elementos.scale(string): Escala de resolução da imagem. "css" produz uma captura de tela dimensionada em pixels CSS (menor, consistente entre dispositivos). "device" produz uma captura de tela de alta resolução usando pixels do dispositivo (maior, considera a proporção de pixels do dispositivo). Padrão é css.
- Somente leitura: true
- browser_type
- Título: Digitar texto
- Descrição: Digita texto em um elemento editável
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada para obter permissão para interagir com o elementotarget(string): Referência exata do elemento alvo do snapshot da página ou um seletor de elemento únicotext(string): Texto a digitar no elementosubmit(boolean, opcional): Se deve enviar o texto digitado (pressionar Enter depois)slowly(boolean, opcional): Se deve digitar um caractere por vez. Útil para acionar manipuladores de teclas na página. Por padrão, todo o texto é preenchido de uma vez.
- Somente leitura: false
- browser_wait_for
- Título: Aguardar
- Descrição: Aguarda o texto aparecer ou desaparecer ou um tempo especificado passar
- Parâmetros:
time(número, opcional): O tempo de espera em segundostext(string, opcional): O texto a aguardartextGone(string, opcional): O texto a aguardar que desapareça
- Somente leitura: false
Gerenciamento de abas
- browser_tabs
- Título: Gerenciar abas
- Descrição: Lista, cria, fecha ou seleciona uma aba do navegador.
- Parâmetros:
action(string): Operação a executarindex(número, opcional): Índice da aba, usado para fechar/selecionar. Se omitido ao fechar, a aba atual é fechada.url(string, opcional): URL para navegar na nova aba, usado para nova.
- Somente leitura: false
Instalação do navegador
Configuração (ativação via --caps=config)
- browser_get_config
- Título: Obter configuração
- Descrição: Obtém a configuração final resolvida após mesclar opções CLI, variáveis de ambiente e arquivo de configuração.
- Parâmetros: Nenhum
- Somente leitura: true
Rede (ativação via --caps=network)
- browser_network_state_set
- Título: Definir estado da rede
- Descrição: Define o estado da rede do navegador como online ou offline. Quando offline, todas as requisições de rede falharão.
- Parâmetros:
state(string): Defina como "offline" para simular modo offline, "online" para restaurar conectividade de rede
- Somente leitura: false
- browser_route
- Título: Simular requisições de rede
- Descrição: Configura uma rota para simular requisições de rede que correspondam a um padrão de URL
- Parâmetros:
pattern(string): Padrão de URL para corresponder (ex., "/api/users", "/*.{png,jpg}")status(número, opcional): Código de status HTTP para retornar (padrão: 200)body(string, opcional): Corpo da resposta (texto ou string JSON)contentType(string, opcional): Cabeçalho Content-Type (ex., "application/json", "text/html")headers(array, opcional): Cabeçalhos para adicionar no formato "Nome: Valor"removeHeaders(string, opcional): Lista separada por vírgulas de nomes de cabeçalhos para remover da requisição
- Somente leitura: false
- browser_route_list
- Título: Listar rotas de rede
- Descrição: Lista todas as rotas de rede ativas
- Parâmetros: Nenhum
- Somente leitura: true
- browser_unroute
- Título: Remover rotas de rede
- Descrição: Remove rotas de rede que correspondam a um padrão (ou todas as rotas se nenhum padrão for especificado)
- Parâmetros:
pattern(string, opcional): Padrão de URL para remover rota (omitir para remover todas as rotas)
- Somente leitura: false
Armazenamento (ativação via --caps=storage)
- browser_cookie_clear
- Título: Limpar cookies
- Descrição: Limpa todos os cookies
- Parâmetros: Nenhum
- Somente leitura: false
- browser_cookie_delete
- Título: Excluir cookie
- Descrição: Exclui um cookie específico
- Parâmetros:
name(string): Nome do cookie a excluir
- Somente leitura: false
- browser_cookie_get
- Título: Obter cookie
- Descrição: Obtém um cookie específico pelo nome
- Parâmetros:
name(string): Nome do cookie a obter
- Somente leitura: true
- browser_cookie_list
- Título: Listar cookies
- Descrição: Lista todos os cookies (opcionalmente filtrados por domínio/caminho)
- Parâmetros:
domain(string, opcional): Filtrar cookies por domíniopath(string, opcional): Filtrar cookies por caminho
- Somente leitura: true
- browser_cookie_set
- Título: Definir cookie
- Descrição: Define um cookie com flags opcionais (domínio, caminho, expiração, httpOnly, secure, sameSite)
- Parâmetros:
name(string): Nome do cookievalue(string): Valor do cookiedomain(string, opcional): Domínio do cookiepath(string, opcional): Caminho do cookieexpires(número, opcional): Expiração do cookie como timestamp UnixhttpOnly(booleano, opcional): Se o cookie é somente HTTPsecure(booleano, opcional): Se o cookie é segurosameSite(string, opcional): Atributo SameSite do cookie
- Somente leitura: false
- browser_localstorage_clear
- Título: Limpar localStorage
- Descrição: Limpa todo o localStorage
- Parâmetros: Nenhum
- Somente leitura: false
- browser_localstorage_delete
- Título: Excluir item do localStorage
- Descrição: Exclui um item do localStorage
- Parâmetros:
key(string): Chave a excluir
- Somente leitura: false
- browser_localstorage_get
- Título: Obter item do localStorage
- Descrição: Obtém um item do localStorage pela chave
- Parâmetros:
key(string): Chave a obter
- Somente leitura: true
- browser_localstorage_list
- Título: Listar localStorage
- Descrição: Lista todos os pares chave-valor do localStorage
- Parâmetros: Nenhum
- Somente leitura: true
- browser_localstorage_set
- Título: Definir item do localStorage
- Descrição: Define um item do localStorage
- Parâmetros:
key(string): Chave a definirvalue(string): Valor a definir
- Somente leitura: false
- browser_sessionstorage_clear
- Título: Limpar sessionStorage
- Descrição: Limpa todo o sessionStorage
- Parâmetros: Nenhum
- Somente leitura: false
- browser_sessionstorage_delete
- Título: Excluir item do sessionStorage
- Descrição: Exclui um item do sessionStorage
- Parâmetros:
key(string): Chave a excluir
- Somente leitura: false
- browser_sessionstorage_get
- Título: Obter item do sessionStorage
- Descrição: Obtém um item do sessionStorage pela chave
- Parâmetros:
key(string): Chave a obter
- Somente leitura: true
- browser_sessionstorage_list
- Título: Listar sessionStorage
- Descrição: Lista todos os pares chave-valor do sessionStorage
- Parâmetros: Nenhum
- Somente leitura: true
- browser_sessionstorage_set
- Título: Definir item do sessionStorage
- Descrição: Define um item do sessionStorage
- Parâmetros:
key(string): Chave a definirvalue(string): Valor a definir
- Somente leitura: false
- browser_set_storage_state
- Título: Restaurar estado do armazenamento
- Descrição: Restaura o estado do armazenamento (cookies, armazenamento local) de um arquivo. Isso limpa cookies e armazenamento local existentes antes de restaurar.
- Parâmetros:
filename(string): Caminho para o arquivo de estado do armazenamento de onde restaurar
- Somente leitura: false
- browser_storage_state
- Título: Salvar estado do armazenamento
- Descrição: Salva o estado do armazenamento (cookies, armazenamento local) em um arquivo para reutilização posterior
- Parâmetros:
filename(string, opcional): Nome do arquivo para salvar o estado do armazenamento. Padrão parastorage-state-{timestamp}.jsonse não especificado.
- Somente leitura: true
DevTools (ativação via --caps=devtools)
- browser_annotate
- Título: Anotar a página atual
- Descrição: Abre o Playwright Dashboard no modo de anotação para a página atual e aguarda o usuário desenhar anotações. Retorna a captura de tela anotada, o snapshot ARIA e a lista de anotações.
- Parâmetros: Nenhum
- Somente leitura: true
- browser_hide_highlight
- Título: Ocultar destaque do elemento
- Descrição: Remove uma sobreposição de destaque adicionada anteriormente para o elemento.
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada ao adicionar o destaque; deve corresponder ao valor passado para browser_highlight.target(string, opcional): Referência exata do elemento alvo do snapshot da página, ou um seletor de elemento único
- Somente leitura: true
- browser_highlight
- Título: Destacar elemento
- Descrição: Mostra uma sobreposição de destaque persistente ao redor do elemento na página.
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada para obter permissão para interagir com o elementotarget(string): Referência exata do elemento alvo do snapshot da página, ou um seletor de elemento únicostyle(string, opcional): CSS inline adicional aplicado à sobreposição de destaque, ex. "outline: 2px dashed red".
- Somente leitura: true
- browser_resume
- Título: Retomar execução de script pausada
- Descrição: Retoma a execução do script após ter sido pausada. Quando chamado com step definido como true, a execução pausará novamente antes da próxima ação.
- Parâmetros:
step(booleano, opcional): Quando true, a execução pausará novamente antes da próxima ação, permitindo depuração passo a passo.location(string, opcional): Pausa a execução em um : específico, ex. "example.spec.ts:42".
- Somente leitura: false
- browser_start_tracing
- Título: Iniciar rastreamento
- Descrição: Inicia a gravação de rastreamento
- Parâmetros: Nenhum
- Somente leitura: true
- browser_start_video
- Título: Iniciar vídeo
- Descrição: Inicia a gravação de vídeo
- Parâmetros:
filename(string, opcional): Nome do arquivo para salvar o vídeo.size(objeto, opcional): Tamanho do vídeo
- Somente leitura: true
- browser_stop_tracing
- Título: Parar rastreamento
- Descrição: Para a gravação de rastreamento
- Parâmetros: Nenhum
- Somente leitura: true
- browser_stop_video
- Título: Parar vídeo
- Descrição: Para a gravação de vídeo
- Parâmetros: Nenhum
- Somente leitura: true
- browser_video_chapter
- Título: Capítulo de vídeo
- Descrição: Adiciona um marcador de capítulo à gravação de vídeo. Mostra um cartão de capítulo em tela cheia com fundo desfocado.
- Parâmetros:
title(string): Título do capítulodescription(string, opcional): Descrição do capítuloduration(número, opcional): Duração em milissegundos para mostrar o cartão do capítulo
- Somente leitura: true
- browser_video_hide_actions
- Título: Ocultar sobreposições de ação
- Descrição: Para de anotar ações realizadas na página.
- Parâmetros: Nenhum
- Somente leitura: true
- browser_video_show_actions
- Título: Mostrar sobreposições de ação
- Descrição: Anota ações subsequentes realizadas na página com um balão que nomeia a ação e destaca o elemento alvo. Útil durante gravação de vídeo ou screencasting.
- Parâmetros:
duration(número, opcional): Quanto tempo cada anotação de ação permanece na tela, em milissegundos. Padrão 500.position(string, opcional): Onde colocar o título da ação relativo à página. Padrão top-right.cursor(string, opcional): Decoração do cursor para ações de ponteiro. "pointer" (padrão) anima um ponteiro do mouse do ponto de ação anterior para o próximo; "none" desabilita a decoração do cursor.
- Somente leitura: true
Baseado em coordenadas (ative com --caps=vision)
- browser_mouse_click_xy
- Título: Clicar
- Descrição: Clica o botão do mouse em uma determinada posição
- Parâmetros:
x(number): Coordenada Xy(number): Coordenada Ybutton(string, opcional): Botão a clicar, padrão é esquerdoclickCount(number, opcional): Número de cliques, padrão é 1delay(number, opcional): Tempo de espera entre pressionar e soltar o mouse em milissegundos, padrão é 0
- Somente leitura: false
- browser_mouse_down
- Título: Pressionar mouse
- Descrição: Pressiona o botão do mouse
- Parâmetros:
button(string, opcional): Botão a pressionar, padrão é esquerdo
- Somente leitura: false
- browser_mouse_drag_xy
- Título: Arrastar mouse
- Descrição: Arrasta o botão esquerdo do mouse para uma determinada posição
- Parâmetros:
startX(number): Coordenada X inicialstartY(number): Coordenada Y inicialendX(number): Coordenada X finalendY(number): Coordenada Y final
- Somente leitura: false
- browser_mouse_move_xy
- Título: Mover mouse
- Descrição: Move o mouse para uma determinada posição
- Parâmetros:
x(number): Coordenada Xy(number): Coordenada Y
- Somente leitura: false
- browser_mouse_up
- Título: Soltar mouse
- Descrição: Solta o botão do mouse
- Parâmetros:
button(string, opcional): Botão a soltar, padrão é esquerdo
- Somente leitura: false
- browser_mouse_wheel
- Título: Rolar a roda do mouse
- Descrição: Rola a roda do mouse
- Parâmetros:
deltaX(number): Delta XdeltaY(number): Delta Y
- Somente leitura: false
Geração de PDF (ative com --caps=pdf)
- browser_pdf_save
- Título: Salvar como PDF
- Descrição: Salva a página como PDF
- Parâmetros:
filename(string, opcional): Nome do arquivo para salvar o PDF. Padrão épage-{timestamp}.pdfse não especificado. Prefira nomes de arquivo relativos para permanecer dentro do diretório de saída.
- Somente leitura: true
Asserções de teste (ative com --caps=testing)
- browser_generate_locator
- Título: Criar localizador para elemento
- Descrição: Gera um localizador para o elemento fornecido para uso em testes
- Parâmetros:
element(string, opcional): Descrição legível do elemento usada para obter permissão para interagir com o elementotarget(string): Referência exata do elemento alvo do snapshot da página, ou um seletor de elemento único
- Somente leitura: true
- browser_verify_element_visible
- Título: Verificar elemento visível
- Descrição: Verifica se o elemento está visível na página
- Parâmetros:
role(string): ROLE do elemento. Pode ser encontrado no snapshot assim:- {ROLE} "Accessible Name":accessibleName(string): ACCESSIBLE_NAME do elemento. Pode ser encontrado no snapshot assim:- role "{ACCESSIBLE_NAME}"
- Somente leitura: false
- browser_verify_list_visible
- Título: Verificar lista visível
- Descrição: Verifica se a lista está visível na página
- Parâmetros:
element(string): Descrição legível da listatarget(string): Referência exata do elemento alvo que aponta para a listaitems(array): Itens a verificar
- Somente leitura: false
- browser_verify_text_visible
- Título: Verificar texto visível
- Descrição: Verifica se o texto está visível na página. Prefira browser_verify_element_visible se possível.
- Parâmetros:
text(string): TEXTO a verificar. Pode ser encontrado no snapshot assim:- role "Accessible Name": {TEXT}ou assim:- text: {TEXT}
- Somente leitura: false
- browser_verify_value
- Título: Verificar valor
- Descrição: Verifica o valor do elemento
- Parâmetros:
type(string): Tipo do elementoelement(string): Descrição legível do elementotarget(string): Referência exata do elemento alvo do snapshot da páginavalue(string): Valor a verificar. Para checkbox, use "true" ou "false".
- Somente leitura: false