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
platformstring-Piattaforma da automatizzare: iOS o Android
deviceNamestring-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
urlstringL'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
selectorstring-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
selectorstring-Selettore per l'elemento di input
valuestring-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
directionstring-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
namestring-Nome del cookie
valuestring-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
directionstring-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
sourceSelectorstringSelettore 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
bundleIdstringIdentificatore 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
contextstringNome 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
orientationstringPORTRAIT 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
latitudenumberCoordinata di latitudine (-90 a 90)
longitudenumberCoordinata 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
scriptstringCodice 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