Pular para o conteúdo principal

Ferramentas

As seguintes ferramentas estão disponíveis através do servidor WebdriverIO MCP. Essas ferramentas permitem que assistentes de IA automatizem navegadores e aplicativos móveis.

Gerenciamento de Sessão​

start_browser​

Inicia uma sessão de navegador Chrome.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
headlessbooleanNãofalseExecutar Chrome em modo headless
windowWidthnumberNão1920Largura da janela do navegador (400-3840)
windowHeightnumberNão1080Altura da janela do navegador (400-2160)
navigationUrlstringNão-URL para navegar após iniciar o navegador

Exemplo​

Start a browser with 1920x1080 resolution and navigate to webdriver.io

Suporte​

  • Navegadores Desktop

start_app_session​

Inicia uma sessão de aplicativo móvel no iOS ou Android via Appium.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
platformstringSim-Plataforma para automatizar: iOS ou Android
deviceNamestringSim-Nome do dispositivo ou simulador/emulador
appPathstringNão*-Caminho para o arquivo do aplicativo (.app, .ipa, ou .apk)
platformVersionstringNão-Versão do SO (ex., 17.0, 14)
automationNamestringNãoAutoXCUITest (iOS), UiAutomator2 ou Espresso (Android)
udidstringNão-Identificador único do dispositivo (necessário para dispositivos iOS reais)
noResetbooleanNãofalsePreservar estado do aplicativo entre sessões
fullResetbooleanNãotrueDesinstalar e reinstalar o aplicativo antes da sessão
autoGrantPermissionsbooleanNãotrueConceder permissões do aplicativo automaticamente
autoAcceptAlertsbooleanNãotrueAceitar alertas do sistema automaticamente
autoDismissAlertsbooleanNãofalseDispensar (em vez de aceitar) alertas
appWaitActivitystringNão-Activity para aguardar na inicialização (somente Android)
newCommandTimeoutnumberNão60Segundos antes da sessão expirar devido a inatividade
appiumHoststringNão127.0.0.1Hostname do servidor Appium
appiumPortnumberNão4723Porta do servidor Appium
appiumPathstringNão/Caminho do servidor Appium

*Ou appPath deve ser fornecido, ou noReset: true para conectar a um aplicativo já em execução.

Exemplo​

Start an iOS app session on iPhone 15 simulator with my app at /path/to/app.app

Suporte​

  • Simuladores iOS
  • Dispositivos iOS reais
  • Emuladores Android
  • Dispositivos Android reais

close_session​

Fecha a sessão atual do navegador ou aplicativo.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
detachbooleanNãofalseDesanexar da sessão em vez de fechar (mantém o navegador/aplicativo em execução)

Notas​

Sessões com noReset: true ou sem appPath são automaticamente desanexadas ao fechar para preservar o estado.

Suporte​

  • Navegadores Desktop
  • Aplicativos Móveis

Navega para uma URL.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
urlstringSimA URL para navegar

Exemplo​

Navigate to https://webdriver.io

Suporte​

  • Navegadores Desktop

Interação com Elementos​

click_element​

Clica em um elemento identificado por um seletor.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
selectorstringSim-Seletor CSS, XPath ou seletor móvel
scrollToViewbooleanNãotrueRolar o elemento para a visualização antes de clicar
timeoutnumberNão3000Tempo máximo para aguardar o elemento (ms)

Notas​

  • Suporta seletores de texto WebdriverIO: button=Texto exato ou a*=Contém texto
  • Usa alinhamento central para posicionamento de rolagem

Exemplo​

Click the element with selector "#submit-button"

Suporte​

  • Navegadores Desktop
  • Aplicativos Nativos Móveis

set_value​

Digita texto em um campo de entrada.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
selectorstringSim-Seletor para o elemento de entrada
valuestringSim-Texto para digitar
scrollToViewbooleanNãotrueRolar o elemento para a visualização antes de digitar
timeoutnumberNão3000Tempo máximo para aguardar o elemento (ms)

Notas​

Limpa o valor existente antes de digitar o novo texto.

Exemplo​

Set the value "john@example.com" in the element with selector "#email"

Suporte​

  • Navegadores Desktop
  • Aplicativos Nativos Móveis

Análise de Página​

get_visible_elements​

Obtém elementos visíveis e interativos na página ou tela atual. Esta é a principal ferramenta para descobrir quais elementos estão disponíveis para interação.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
elementTypestringNãointeractableTipo de elementos: interactable (botões/links/entradas), visual (imagens/SVGs), ou all
inViewportOnlybooleanNãotrueRetornar apenas elementos visíveis na viewport
includeContainersbooleanNãofalseIncluir contêineres de layout (ViewGroup, ScrollView, etc.)
includeBoundsbooleanNãofalseIncluir coordenadas dos elementos (x, y, width, height)
limitnumberNão0Máximo de elementos a retornar (0 = ilimitado)
offsetnumberNão0Número de elementos a pular (para paginação)

Retorna​

{
"total": 42,
"showing": 20,
"hasMore": true,
"elements": [...]
}

Elementos web incluem: tagName, type, id, className, textContent, value, placeholder, href, ariaLabel, role, cssSelector, isInViewport

Elementos móveis incluem: Múltiplas estratégias de localização (accessibility ID, resource ID, XPath, UiAutomator/predicates), tipo de elemento, texto e, opcionalmente, limites

Notas​

  • Web: Usa um script otimizado para detecção rápida de elementos
  • Mobile: Usa análise eficiente da fonte XML da página (2 chamadas HTTP vs 600+ para consultas de elementos)
  • Use paginação (limit e offset) para páginas grandes para reduzir o uso de tokens

Exemplo​

Get all visible elements on the page with their coordinates

Suporte​

  • Navegadores Desktop
  • Aplicativos Móveis

get_accessibility​

Obtém a árvore de acessibilidade da página atual com informações semânticas sobre funções, nomes e estados.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
limitnumberNão100Máximo de nós a retornar (0 = ilimitado)
offsetnumberNão0Número de nós a pular (para paginação)
rolesstring[]NãoTodosFiltrar para funções específicas (ex., ["button", "link", "textbox"])
namedOnlybooleanNãotrueRetornar apenas nós com um nome/rótulo

Retorna​

{
"total": 85,
"showing": 100,
"hasMore": false,
"nodes": [
{ "role": "button", "name": "Submit" },
{ "role": "link", "name": "Home" }
]
}

Notas​

  • Apenas navegadores. Para aplicativos móveis, use get_visible_elements em vez disso
  • Útil quando get_visible_elements não retorna os elementos esperados
  • namedOnly: true filtra contêineres anônimos e reduz ruído

Suporte​

  • Navegadores Desktop

Capturas de Tela​

take_screenshot​

Captura uma screenshot da viewport atual.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
outputPathstringNãoCaminho para salvar o arquivo de screenshot. Se omitido, retorna dados base64

Retorna​

Dados de imagem codificados em base64 (PNG ou JPEG) com informações de tamanho.

Notas​

As screenshots são automaticamente otimizadas:

  • Dimensão máxima: 2000px (reduzida se maior)
  • Tamanho máximo do arquivo: 1MB
  • Formato: PNG com compressão máxima, ou JPEG se necessário para atender ao limite de tamanho

Suporte​

  • Navegadores Desktop
  • Aplicativos Móveis

Rolagem​

scroll​

Rola a página para cima ou para baixo por um número especificado de pixels.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
directionstringSim-Direção da rolagem: up ou down
pixelsnumberNão500Número de pixels para rolar

Notas​

Apenas navegadores. Para rolagem em dispositivos móveis, use a ferramenta swipe em vez disso.

Suporte​

  • Navegadores Desktop

Gerenciamento de Cookies​

get_cookies​

Obtém cookies da sessão atual.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
namestringNãoNome específico do cookie para recuperar (omita para todos os cookies)

Retorna​

Objetos de cookie com propriedades name, value, domain, path, expiry, secure e httpOnly.

Suporte​

  • Navegadores Desktop

Define um cookie na sessão atual.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
namestringSim-Nome do cookie
valuestringSim-Valor do cookie
domainstringNãoAtualDomínio do cookie
pathstringNão/Caminho do cookie
expirynumberNão-Expiração como timestamp Unix (segundos)
securebooleanNão-Flag de segurança
httpOnlybooleanNão-Flag HttpOnly
sameSitestringNão-Atributo SameSite: strict, lax, ou none

Suporte​

  • Navegadores Desktop

delete_cookies​

Exclui cookies da sessão atual.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
namestringNãoNome específico do cookie para excluir (omita para excluir todos)

Suporte​

  • Navegadores Desktop

Gestos de Toque (Mobile)​

tap_element​

Toca em um elemento ou coordenadas da tela.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
selectorstringNão*Seletor para o elemento a tocar
xnumberNão*Coordenada X para toque
ynumberNão*Coordenada Y para toque

*Ou selector ou ambos x e y são necessários.

Suporte​

  • Aplicativos Móveis

swipe​

Realiza um gesto de deslize na direção especificada.

Parâmetros​

ParâmetroTipoObrigatórioPadrãoDescrição
directionstringSim-Direção do deslize: up, down, left, right
durationnumberNão500Duração do deslize em milissegundos (100-5000)
percentnumberNão0.5/0.95Percentual da tela para deslizar (0-1)

Notas​

  • Percentual padrão: 0.5 para deslizes verticais, 0.95 para deslizes horizontais
  • A direção indica o movimento do conteúdo: "deslizar para cima" rola o conteúdo para cima

Exemplo​

Swipe up to scroll down the screen

Suporte​

  • Aplicativos Móveis

drag_and_drop​

Arrasta um elemento para outro elemento ou coordenadas.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
sourceSelectorstringSimSeletor do elemento de origem para arrastar
targetSelectorstringNão*Seletor do elemento de destino para soltar
xnumberNão*Deslocamento X de destino (se não houver targetSelector)
ynumberNão*Deslocamento Y de destino (se não houver targetSelector)
durationnumberNãoPadrão

*Ou targetSelector ou ambos x e y são necessários.

Suporte​

  • Aplicativos Móveis

Ciclo de Vida do Aplicativo (Mobile)​

get_app_state​

Obtém o estado atual de um aplicativo.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
bundleIdstringSimIdentificador do aplicativo (bundle ID para iOS, nome do pacote para Android)

Retorna​

Estado do aplicativo: not installed, not running, running in background (suspended), running in background, ou running in foreground.

Suporte​

  • Aplicativos Móveis

Alternância de Contexto (Aplicativos Híbridos)​

get_contexts​

Lista todos os contextos disponíveis (nativos e webviews).

Parâmetros​

Nenhum

Retorna​

Array de nomes de contexto (ex., ["NATIVE_APP", "WEBVIEW_com.example.app"]).

Suporte​

  • Aplicativos Híbridos Móveis

get_current_context​

Obtém o contexto atualmente ativo.

Parâmetros​

Nenhum

Retorna​

Nome do contexto atual (ex., NATIVE_APP ou WEBVIEW_*).

Suporte​

  • Aplicativos Híbridos Móveis

switch_context​

Alterna entre contextos nativos e webview.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
contextstringSimNome do contexto ou índice (base 1) de get_contexts

Exemplo​

Switch to the WEBVIEW_com.example.app context

Suporte​

  • Aplicativos Híbridos Móveis

Controle de Dispositivo (Mobile)​

rotate_device​

Gira o dispositivo para uma orientação específica.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
orientationstringSimPORTRAIT ou LANDSCAPE

Suporte​

  • Aplicativos Móveis

hide_keyboard​

Oculta o teclado na tela.

Parâmetros​

Nenhum

Suporte​

  • Aplicativos Móveis

get_geolocation​

Obtém as coordenadas GPS atuais.

Parâmetros​

Nenhum

Retorna​

Objeto com latitude, longitude e altitude.

Suporte​

  • Aplicativos Móveis

set_geolocation​

Define as coordenadas GPS do dispositivo.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
latitudenumberSimCoordenada de latitude (-90 a 90)
longitudenumberSimCoordenada de longitude (-180 a 180)
altitudenumberNãoAltitude em metros

Exemplo​

Set geolocation to San Francisco (37.7749, -122.4194)

Suporte​

  • Aplicativos Móveis

Execução de Script​

execute_script​

Executa JavaScript no navegador ou comandos móveis via Appium.

Parâmetros​

ParâmetroTipoObrigatórioDescrição
scriptstringSimCódigo JavaScript (navegador) ou comando móvel (ex., mobile: pressKey)
argsarrayNãoArgumentos para o script

Exemplos de Navegador​

// Get page title
execute_script({ script: "return document.title" })

// Get scroll position
execute_script({ script: "return window.scrollY" })

// Click element by selector
execute_script({ script: "arguments[0].click()", args: ["#myButton"] })

Exemplos para Mobile (Appium)​

// Press back key (Android)
execute_script({ script: "mobile: pressKey", args: [{ keycode: 4 }] })

// Activate app
execute_script({ script: "mobile: activateApp", args: [{ appId: "com.example" }] })

// Terminate app
execute_script({ script: "mobile: terminateApp", args: [{ appId: "com.example" }] })

// Deep link
execute_script({ script: "mobile: deepLink", args: [{ url: "myapp://screen", package: "com.example" }] })

// Shell command (Android)
execute_script({ script: "mobile: shell", args: [{ command: "dumpsys", args: ["battery"] }] })

Códigos de Tecla Comuns do Android​

TeclaCódigo
BACK4
HOME3
ENTER66
MENU82
SEARCH84

Mais Comandos Móveis​

Para uma lista completa dos comandos móveis Appium disponíveis, consulte:

Suporte​

  • Navegadores Desktop
  • Aplicativos Móveis (via comandos móveis Appium)

Welcome! How can I help?

WebdriverIO AI Copilot