Vai al contenuto principale

Strumenti

I seguenti strumenti sono disponibili tramite il server WebdriverIO MCP. Questi strumenti consentono agli assistenti AI di automatizzare browser e applicazioni mobili.

Gestione della Sessione​

start_browser​

Avvia una sessione del browser Chrome.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
headlessbooleanNofalseEsegui Chrome in modalità headless
windowWidthnumberNo1920Larghezza della finestra del browser (400-3840)
windowHeightnumberNo1080Altezza della finestra del browser (400-2160)
navigationUrlstringNo-URL a cui navigare dopo l'avvio del browser

Esempio​

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

Supporto​

  • Browser Desktop

start_app_session​

Avvia una sessione di app mobile su iOS o Android tramite Appium.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
platformstringSì-Piattaforma da automatizzare: iOS o Android
deviceNamestringSì-Nome del dispositivo o simulatore/emulatore
appPathstringNo*-Percorso al file dell'app (.app, .ipa, o .apk)
platformVersionstringNo-Versione del sistema operativo (es., 17.0, 14)
automationNamestringNoAutoXCUITest (iOS), UiAutomator2 o Espresso (Android)
udidstringNo-Identificatore unico del dispositivo (richiesto per dispositivi iOS reali)
noResetbooleanNofalsePreserva lo stato dell'app tra le sessioni
fullResetbooleanNotrueDisinstalla e reinstalla l'app prima della sessione
autoGrantPermissionsbooleanNotrueConcedi automaticamente i permessi all'app
autoAcceptAlertsbooleanNotrueAccetta automaticamente gli avvisi di sistema
autoDismissAlertsbooleanNofalseIgnora (invece di accettare) gli avvisi
appWaitActivitystringNo-Activity da attendere all'avvio (solo Android)
newCommandTimeoutnumberNo60Secondi prima che la sessione scada per inattività
appiumHoststringNo127.0.0.1Hostname del server Appium
appiumPortnumberNo4723Porta del server Appium
appiumPathstringNo/Percorso del server Appium

*È necessario fornire appPath o impostare noReset: true per connettersi a un'app già in esecuzione.

Esempio​

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

Supporto​

  • Simulatori iOS
  • Dispositivi iOS reali
  • Emulatori Android
  • Dispositivi Android reali

close_session​

Chiude la sessione corrente del browser o dell'app.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
detachbooleanNofalseSepara dalla sessione invece di chiuderla (mantiene browser/app in esecuzione)

Note​

Le sessioni con noReset: true o senza appPath si separano automaticamente alla chiusura per preservare lo stato.

Supporto​

  • Browser Desktop
  • App Mobili

Naviga a un URL.

Parametri​

ParametroTipoObbligatorioDescrizione
urlstringSìL'URL a cui navigare

Esempio​

Navigate to https://webdriver.io

Supporto​

  • Browser Desktop

Interazione con Elementi​

click_element​

Clicca un elemento identificato da un selettore.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
selectorstringSì-Selettore CSS, XPath o selettore mobile
scrollToViewbooleanNotrueScorri l'elemento in vista prima di cliccare
timeoutnumberNo3000Tempo massimo di attesa per l'elemento (ms)

Note​

  • Supporta i selettori di testo WebdriverIO: button=Testo esatto o a*=Contiene testo
  • Utilizza l'allineamento centrale per il posizionamento durante lo scorrimento

Esempio​

Click the element with selector "#submit-button"

Supporto​

  • Browser Desktop
  • App Native Mobili

set_value​

Digita testo in un campo di input.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
selectorstringSì-Selettore per l'elemento di input
valuestringSì-Testo da digitare
scrollToViewbooleanNotrueScorri l'elemento in vista prima di digitare
timeoutnumberNo3000Tempo massimo di attesa per l'elemento (ms)

Note​

Cancella il valore esistente prima di digitare il nuovo testo.

Esempio​

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

Supporto​

  • Browser Desktop
  • App Native Mobili

Analisi della Pagina​

get_visible_elements​

Ottiene gli elementi visibili e interagibili nella pagina o schermata corrente. Questo è lo strumento principale per scoprire quali elementi sono disponibili per l'interazione.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
elementTypestringNointeractableTipo di elementi: interactable (pulsanti/link/input), visual (immagini/SVG), o all
inViewportOnlybooleanNotrueRestituisce solo elementi visibili nel viewport
includeContainersbooleanNofalseIncludi container di layout (ViewGroup, ScrollView, ecc.)
includeBoundsbooleanNofalseIncludi coordinate degli elementi (x, y, larghezza, altezza)
limitnumberNo0Numero massimo di elementi da restituire (0 = illimitato)
offsetnumberNo0Numero di elementi da saltare (per la paginazione)

Restituisce​

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

Gli elementi web includono: tagName, type, id, className, textContent, value, placeholder, href, ariaLabel, role, cssSelector, isInViewport

Gli elementi mobili includono: Molteplici strategie di localizzazione (accessibility ID, resource ID, XPath, UiAutomator/predicates), tipo di elemento, testo e opzionalmente i limiti

Note​

  • Web: Utilizza uno script browser ottimizzato per il rilevamento rapido degli elementi
  • Mobile: Utilizza l'analisi efficiente della sorgente XML della pagina (2 chiamate HTTP anziché 600+ per le query sugli elementi)
  • Utilizza la paginazione (limit e offset) per pagine grandi per ridurre l'uso di token

Esempio​

Get all visible elements on the page with their coordinates

Supporto​

  • Browser Desktop
  • App Mobili

get_accessibility​

Ottiene l'albero di accessibilità della pagina corrente con informazioni semantiche su ruoli, nomi e stati.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
limitnumberNo100Numero massimo di nodi da restituire (0 = illimitato)
offsetnumberNo0Numero di nodi da saltare (per la paginazione)
rolesstring[]NoTuttiFiltra per ruoli specifici (es., ["button", "link", "textbox"])
namedOnlybooleanNotrueRestituisce solo nodi con un nome/etichetta

Restituisce​

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

Note​

  • Solo browser. Per app mobili, usa get_visible_elements invece
  • Utile quando get_visible_elements non restituisce gli elementi previsti
  • namedOnly: true filtra i contenitori anonimi e riduce il rumore

Supporto​

  • Browser Desktop

Screenshot​

take_screenshot​

Cattura uno screenshot del viewport corrente.

Parametri​

ParametroTipoObbligatorioDescrizione
outputPathstringNoPercorso per salvare il file screenshot. Se omesso, restituisce dati base64

Restituisce​

Dati immagine codificati in base64 (PNG o JPEG) con informazioni sulla dimensione.

Note​

Gli screenshot vengono automaticamente ottimizzati:

  • Dimensione massima: 2000px (ridotta in scala se più grande)
  • Dimensione massima file: 1MB
  • Formato: PNG con compressione massima, o JPEG se necessario per rispettare il limite di dimensione

Supporto​

  • Browser Desktop
  • App Mobili

Scorrimento​

scroll​

Scorre la pagina verso l'alto o verso il basso di un numero specificato di pixel.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
directionstringSì-Direzione di scorrimento: up o down
pixelsnumberNo500Numero di pixel da scorrere

Note​

Solo browser. Per lo scorrimento su mobile, usa lo strumento swipe invece.

Supporto​

  • Browser Desktop

get_cookies​

Ottiene i cookie dalla sessione corrente.

Parametri​

ParametroTipoObbligatorioDescrizione
namestringNoNome specifico del cookie da recuperare (ometti per tutti i cookie)

Restituisce​

Oggetti cookie con proprietà name, value, domain, path, expiry, secure e httpOnly.

Supporto​

  • Browser Desktop

Imposta un cookie nella sessione corrente.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
namestringSì-Nome del cookie
valuestringSì-Valore del cookie
domainstringNoCorrenteDominio del cookie
pathstringNo/Percorso del cookie
expirynumberNo-Scadenza come timestamp Unix (secondi)
securebooleanNo-Flag secure
httpOnlybooleanNo-Flag HttpOnly
sameSitestringNo-Attributo SameSite: strict, lax o none

Supporto​

  • Browser Desktop

delete_cookies​

Elimina i cookie dalla sessione corrente.

Parametri​

ParametroTipoObbligatorioDescrizione
namestringNoNome specifico del cookie da eliminare (ometti per eliminare tutti)

Supporto​

  • Browser Desktop

Gesti Touch (Mobile)​

tap_element​

Tocca un elemento o coordinate dello schermo.

Parametri​

ParametroTipoObbligatorioDescrizione
selectorstringNo*Selettore per l'elemento da toccare
xnumberNo*Coordinata X per il tocco
ynumberNo*Coordinata Y per il tocco

*È richiesto o selector o entrambi x e y.

Supporto​

  • App Mobili

swipe​

Esegue un gesto di scorrimento nella direzione specificata.

Parametri​

ParametroTipoObbligatorioPredefinitoDescrizione
directionstringSì-Direzione di scorrimento: up, down, left, right
durationnumberNo500Durata dello scorrimento in millisecondi (100-5000)
percentnumberNo0.5/0.95Percentuale di schermo da scorrere (0-1)

Note​

  • Percentuale predefinita: 0.5 per scorrimenti verticali, 0.95 per scorrimenti orizzontali
  • La direzione indica il movimento del contenuto: "swipe up" fa scorrere il contenuto verso l'alto

Esempio​

Swipe up to scroll down the screen

Supporto​

  • App Mobili

drag_and_drop​

Trascina un elemento su un altro elemento o coordinate.

Parametri​

ParametroTipoObbligatorioDescrizione
sourceSelectorstringSìSelettore dell'elemento di origine da trascinare
targetSelectorstringNo*Selettore dell'elemento di destinazione su cui rilasciare
xnumberNo*Offset X di destinazione (se non c'è targetSelector)
ynumberNo*Offset Y di destinazione (se non c'è targetSelector)
durationnumberNoPredefinito

*È richiesto o targetSelector o entrambi x e y.

Supporto​

  • App Mobili

Ciclo di vita dell'App (Mobile)​

get_app_state​

Ottiene lo stato corrente di un'app.

Parametri​

ParametroTipoObbligatorioDescrizione
bundleIdstringSìIdentificatore dell'app (bundle ID per iOS, nome pacchetto per Android)

Restituisce​

Stato dell'app: not installed, not running, running in background (suspended), running in background, o running in foreground.

Supporto​

  • App Mobili

Cambio di Contesto (App Ibride)​

get_contexts​

Elenca tutti i contesti disponibili (nativi e webview).

Parametri​

Nessuno

Restituisce​

Array di nomi di contesto (es., ["NATIVE_APP", "WEBVIEW_com.example.app"]).

Supporto​

  • App Ibride Mobili

get_current_context​

Ottiene il contesto attualmente attivo.

Parametri​

Nessuno

Restituisce​

Nome del contesto corrente (es., NATIVE_APP o WEBVIEW_*).

Supporto​

  • App Ibride Mobili

switch_context​

Passa tra contesti nativi e webview.

Parametri​

ParametroTipoObbligatorioDescrizione
contextstringSìNome del contesto o indice (a base 1) da get_contexts

Esempio​

Switch to the WEBVIEW_com.example.app context

Supporto​

  • App Ibride Mobili

Controllo Dispositivo (Mobile)​

rotate_device​

Ruota il dispositivo in un orientamento specifico.

Parametri​

ParametroTipoObbligatorioDescrizione
orientationstringSìPORTRAIT o LANDSCAPE

Supporto​

  • App Mobili

hide_keyboard​

Nasconde la tastiera sullo schermo.

Parametri​

Nessuno

Supporto​

  • App Mobili

get_geolocation​

Ottiene le coordinate GPS correnti.

Parametri​

Nessuno

Restituisce​

Oggetto con latitude, longitude e altitude.

Supporto​

  • App Mobili

set_geolocation​

Imposta le coordinate GPS del dispositivo.

Parametri​

ParametroTipoObbligatorioDescrizione
latitudenumberSìCoordinata di latitudine (-90 a 90)
longitudenumberSìCoordinata di longitudine (-180 a 180)
altitudenumberNoAltitudine in metri

Esempio​

Set geolocation to San Francisco (37.7749, -122.4194)

Supporto​

  • App Mobili

Esecuzione di Script​

execute_script​

Esegue JavaScript nel browser o comandi mobili tramite Appium.

Parametri​

ParametroTipoObbligatorioDescrizione
scriptstringSìCodice JavaScript (browser) o comando mobile (es., mobile: pressKey)
argsarrayNoArgomenti per lo script

Esempi Browser​

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

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

Codici Tasti Android Comuni​

TastoCodice
BACK4
HOME3
ENTER66
MENU82
SEARCH84

Altri Comandi Mobili​

Per un elenco completo dei comandi mobili disponibili di Appium, vedi:

Supporto​

  • Browser Desktop
  • App Mobili (tramite comandi mobili Appium)

Welcome! How can I help?

WebdriverIO AI Copilot