Saltar al contenido principal

Herramientas

Las siguientes herramientas están disponibles a través del servidor WebdriverIO MCP. Estas herramientas permiten a los asistentes de IA automatizar navegadores y aplicaciones móviles.

Gestión de Sesiones​

start_browser​

Inicia una sesión de navegador Chrome.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
headlessbooleanNofalseEjecutar Chrome en modo sin interfaz gráfica
windowWidthnumberNo1920Ancho de la ventana del navegador (400-3840)
windowHeightnumberNo1080Altura de la ventana del navegador (400-2160)
navigationUrlstringNo-URL a la que navegar después de iniciar el navegador

Ejemplo​

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

Compatibilidad​

  • Navegadores de escritorio

start_app_session​

Inicia una sesión de aplicación móvil en iOS o Android a través de Appium.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
platformstringSí-Plataforma a automatizar: iOS o Android
deviceNamestringSí-Nombre del dispositivo o simulador/emulador
appPathstringNo*-Ruta al archivo de la aplicación (.app, .ipa, o .apk)
platformVersionstringNo-Versión del SO (ej., 17.0, 14)
automationNamestringNoAutoXCUITest (iOS), UiAutomator2 o Espresso (Android)
udidstringNo-Identificador único del dispositivo (necesario para dispositivos iOS reales)
noResetbooleanNofalsePreservar estado de la aplicación entre sesiones
fullResetbooleanNotrueDesinstalar y reinstalar la aplicación antes de la sesión
autoGrantPermissionsbooleanNotrueConceder automáticamente permisos a la aplicación
autoAcceptAlertsbooleanNotrueAceptar automáticamente alertas del sistema
autoDismissAlertsbooleanNofalseDescartar (en lugar de aceptar) alertas
appWaitActivitystringNo-Actividad a esperar en el inicio (solo Android)
newCommandTimeoutnumberNo60Segundos antes de que la sesión termine por inactividad
appiumHoststringNo127.0.0.1Nombre de host del servidor Appium
appiumPortnumberNo4723Puerto del servidor Appium
appiumPathstringNo/Ruta del servidor Appium

*Se debe proporcionar appPath o establecer noReset: true para conectarse a una aplicación que ya está en ejecución.

Ejemplo​

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

Compatibilidad​

  • Simuladores iOS
  • Dispositivos reales iOS
  • Emuladores Android
  • Dispositivos reales Android

close_session​

Cierra la sesión actual del navegador o aplicación.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
detachbooleanNofalseSepararse de la sesión en lugar de cerrarla (mantiene el navegador/aplicación en ejecución)

Notas​

Las sesiones con noReset: true o sin appPath se separan automáticamente al cerrarse para preservar el estado.

Compatibilidad​

  • Navegadores de escritorio
  • Aplicaciones móviles

Navega a una URL.

Parámetros​

ParámetroTipoObligatorioDescripción
urlstringSíLa URL a la que navegar

Ejemplo​

Navigate to https://webdriver.io

Compatibilidad​

  • Navegadores de escritorio

Interacción con Elementos​

click_element​

Hace clic en un elemento identificado por un selector.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
selectorstringSí-Selector CSS, XPath, o selector móvil
scrollToViewbooleanNotrueDesplazar el elemento a la vista antes de hacer clic
timeoutnumberNo3000Tiempo máximo de espera para el elemento (ms)

Notas​

  • Soporta selectores de texto de WebdriverIO: button=Texto exacto o a*=Contiene texto
  • Utiliza alineación central para posicionamiento del desplazamiento

Ejemplo​

Click the element with selector "#submit-button"

Compatibilidad​

  • Navegadores de escritorio
  • Aplicaciones nativas móviles

set_value​

Escribe texto en un campo de entrada.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
selectorstringSí-Selector para el elemento de entrada
valuestringSí-Texto a escribir
scrollToViewbooleanNotrueDesplazar elemento a la vista antes de escribir
timeoutnumberNo3000Tiempo máximo de espera para el elemento (ms)

Notas​

Limpia el valor existente antes de escribir el nuevo texto.

Ejemplo​

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

Compatibilidad​

  • Navegadores de escritorio
  • Aplicaciones nativas móviles

Análisis de Página​

get_visible_elements​

Obtiene elementos visibles e interactuables en la página o pantalla actual. Esta es la herramienta principal para descubrir qué elementos están disponibles para interacción.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
elementTypestringNointeractableTipo de elementos: interactable (botones/enlaces/entradas), visual (imágenes/SVGs), o all
inViewportOnlybooleanNotrueSolo devuelve elementos visibles en el viewport
includeContainersbooleanNofalseIncluir contenedores de diseño (ViewGroup, ScrollView, etc.)
includeBoundsbooleanNofalseIncluir coordenadas del elemento (x, y, ancho, alto)
limitnumberNo0Máximo de elementos a devolver (0 = ilimitado)
offsetnumberNo0Número de elementos a omitir (para paginación)

Devuelve​

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

Los elementos web incluyen: tagName, type, id, className, textContent, value, placeholder, href, ariaLabel, role, cssSelector, isInViewport

Los elementos móviles incluyen: Múltiples estrategias de localización (ID de accesibilidad, ID de recurso, XPath, UiAutomator/predicados), tipo de elemento, texto y, opcionalmente, límites

Notas​

  • Web: Usa un script de navegador optimizado para detección rápida de elementos
  • Móvil: Utiliza un análisis eficiente de origen de página XML (2 llamadas HTTP vs 600+ para consultas de elementos)
  • Use paginación (limit y offset) para páginas grandes para reducir el uso de tokens

Ejemplo​

Get all visible elements on the page with their coordinates

Compatibilidad​

  • Navegadores de escritorio
  • Aplicaciones móviles

get_accessibility​

Obtiene el árbol de accesibilidad de la página actual con información semántica sobre roles, nombres y estados.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
limitnumberNo100Número máximo de nodos a devolver (0 = ilimitado)
offsetnumberNo0Número de nodos a omitir (para paginación)
rolesstring[]NoTodosFiltrar a roles específicos (ej., ["button", "link", "textbox"])
namedOnlybooleanNotrueSolo devolver nodos con un nombre/etiqueta

Devuelve​

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

Notas​

  • Solo para navegador. Para aplicaciones móviles, use get_visible_elements en su lugar
  • Útil cuando get_visible_elements no devuelve los elementos esperados
  • namedOnly: true filtra contenedores anónimos y reduce el ruido

Compatibilidad​

  • Navegadores de escritorio

Capturas de pantalla​

take_screenshot​

Captura una imagen de la vista actual.

Parámetros​

ParámetroTipoObligatorioDescripción
outputPathstringNoRuta para guardar el archivo de captura. Si se omite, devuelve datos base64

Devuelve​

Datos de imagen codificados en base64 (PNG o JPEG) con información de tamaño.

Notas​

Las capturas se optimizan automáticamente:

  • Dimensión máxima: 2000px (se reduce la escala si es mayor)
  • Tamaño máximo de archivo: 1MB
  • Formato: PNG con compresión máxima, o JPEG si es necesario para cumplir con el límite de tamaño

Compatibilidad​

  • Navegadores de escritorio
  • Aplicaciones móviles

Desplazamiento​

scroll​

Desplaza la página hacia arriba o hacia abajo por un número específico de píxeles.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
directionstringSí-Dirección de desplazamiento: up o down
pixelsnumberNo500Número de píxeles a desplazar

Notas​

Solo para navegador. Para desplazamiento móvil, use la herramienta swipe en su lugar.

Compatibilidad​

  • Navegadores de escritorio

Gestión de Cookies​

get_cookies​

Obtiene cookies de la sesión actual.

Parámetros​

ParámetroTipoObligatorioDescripción
namestringNoNombre específico de cookie para recuperar (omitir para todas las cookies)

Devuelve​

Objetos de cookie con propiedades name, value, domain, path, expiry, secure y httpOnly.

Compatibilidad​

  • Navegadores de escritorio

Establece una cookie en la sesión actual.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
namestringSí-Nombre de la cookie
valuestringSí-Valor de la cookie
domainstringNoActualDominio de la cookie
pathstringNo/Ruta de la cookie
expirynumberNo-Expiración como marca de tiempo Unix (segundos)
securebooleanNo-Flag seguro
httpOnlybooleanNo-Flag HttpOnly
sameSitestringNo-Atributo SameSite: strict, lax, o none

Compatibilidad​

  • Navegadores de escritorio

delete_cookies​

Elimina cookies de la sesión actual.

Parámetros​

ParámetroTipoObligatorioDescripción
namestringNoNombre específico de cookie para eliminar (omitir para eliminar todas)

Compatibilidad​

  • Navegadores de escritorio

Gestos Táctiles (Móvil)​

tap_element​

Toca un elemento o coordenadas de pantalla.

Parámetros​

ParámetroTipoObligatorioDescripción
selectorstringNo*Selector para el elemento a tocar
xnumberNo*Coordenada X para tocar
ynumberNo*Coordenada Y para tocar

*Se requiere selector o ambos x e y.

Compatibilidad​

  • Aplicaciones móviles

swipe​

Realiza un gesto de deslizamiento en la dirección especificada.

Parámetros​

ParámetroTipoObligatorioPredeterminadoDescripción
directionstringSí-Dirección del deslizamiento: up, down, left, right
durationnumberNo500Duración del deslizamiento en milisegundos (100-5000)
percentnumberNo0.5/0.95Porcentaje de pantalla a deslizar (0-1)

Notas​

  • Porcentaje predeterminado: 0.5 para deslizamientos verticales, 0.95 para horizontales
  • La dirección indica el movimiento del contenido: "deslizar hacia arriba" desplaza el contenido hacia arriba

Ejemplo​

Swipe up to scroll down the screen

Compatibilidad​

  • Aplicaciones móviles

drag_and_drop​

Arrastra un elemento a otro elemento o coordenadas.

Parámetros​

ParámetroTipoObligatorioDescripción
sourceSelectorstringSíSelector del elemento origen a arrastrar
targetSelectorstringNo*Selector del elemento destino donde soltar
xnumberNo*Desplazamiento X de destino (si no hay targetSelector)
ynumberNo*Desplazamiento Y de destino (si no hay targetSelector)
durationnumberNoPredeterminado

*Se requiere targetSelector o ambos x e y.

Compatibilidad​

  • Aplicaciones móviles

Ciclo de vida de la aplicación (Móvil)​

get_app_state​

Obtiene el estado actual de una aplicación.

Parámetros​

ParámetroTipoObligatorioDescripción
bundleIdstringSíIdentificador de la aplicación (bundle ID para iOS, nombre del paquete para Android)

Devuelve​

Estado de la aplicación: not installed, not running, running in background (suspended), running in background, o running in foreground.

Compatibilidad​

  • Aplicaciones móviles

Cambio de contexto (Aplicaciones híbridas)​

get_contexts​

Lista todos los contextos disponibles (nativos y webviews).

Parámetros​

Ninguno

Devuelve​

Array de nombres de contexto (ej., ["NATIVE_APP", "WEBVIEW_com.example.app"]).

Compatibilidad​

  • Aplicaciones híbridas móviles

get_current_context​

Obtiene el contexto actualmente activo.

Parámetros​

Ninguno

Devuelve​

Nombre del contexto actual (ej., NATIVE_APP o WEBVIEW_*).

Compatibilidad​

  • Aplicaciones híbridas móviles

switch_context​

Cambia entre contextos nativos y webview.

Parámetros​

ParámetroTipoObligatorioDescripción
contextstringSíNombre del contexto o índice (base 1) de get_contexts

Ejemplo​

Switch to the WEBVIEW_com.example.app context

Compatibilidad​

  • Aplicaciones híbridas móviles

Control de dispositivo (Móvil)​

rotate_device​

Rota el dispositivo a una orientación específica.

Parámetros​

ParámetroTipoObligatorioDescripción
orientationstringSíPORTRAIT o LANDSCAPE

Compatibilidad​

  • Aplicaciones móviles

hide_keyboard​

Oculta el teclado en pantalla.

Parámetros​

Ninguno

Compatibilidad​

  • Aplicaciones móviles

get_geolocation​

Obtiene las coordenadas GPS actuales.

Parámetros​

Ninguno

Devuelve​

Objeto con latitude, longitude, y altitude.

Compatibilidad​

  • Aplicaciones móviles

set_geolocation​

Establece las coordenadas GPS del dispositivo.

Parámetros​

ParámetroTipoObligatorioDescripción
latitudenumberSíCoordenada de latitud (-90 a 90)
longitudenumberSíCoordenada de longitud (-180 a 180)
altitudenumberNoAltitud en metros

Ejemplo​

Set geolocation to San Francisco (37.7749, -122.4194)

Compatibilidad​

  • Aplicaciones móviles

Ejecución de scripts​

execute_script​

Ejecuta JavaScript en el navegador o comandos móviles a través de Appium.

Parámetros​

ParámetroTipoObligatorioDescripción
scriptstringSíCódigo JavaScript (navegador) o comando móvil (ej., mobile: pressKey)
argsarrayNoArgumentos para el script

Ejemplos 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"] })

Ejemplos móviles (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 teclas comunes para Android​

TeclaCódigo
BACK4
HOME3
ENTER66
MENU82
SEARCH84

Más comandos móviles​

Para una lista completa de comandos móviles disponibles en Appium, consulte:

Compatibilidad​

  • Navegadores de escritorio
  • Aplicaciones móviles (a través de comandos móviles de Appium)

Welcome! How can I help?

WebdriverIO AI Copilot