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
platformstring-Plataforma a automatizar: iOS o Android
deviceNamestring-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
urlstringLa 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
selectorstring-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
selectorstring-Selector para el elemento de entrada
valuestring-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
directionstring-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
namestring-Nombre de la cookie
valuestring-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
directionstring-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
sourceSelectorstringSelector 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
bundleIdstringIdentificador 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
contextstringNombre 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
orientationstringPORTRAIT 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
latitudenumberCoordenada de latitud (-90 a 90)
longitudenumberCoordenada 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
scriptstringCó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