Aller au contenu principal

Outils

Les outils suivants sont disponibles via le serveur WebdriverIO MCP. Ces outils permettent aux assistants IA d'automatiser les navigateurs et les applications mobiles.

Gestion des sessions

start_browser

Lance une session de navigateur Chrome.

Paramètres

ParamètreTypeObligatoirePar défautDescription
headlessbooleanNonfalseExécuter Chrome en mode headless
windowWidthnumberNon1920Largeur de la fenêtre du navigateur (400-3840)
windowHeightnumberNon1080Hauteur de la fenêtre du navigateur (400-2160)
navigationUrlstringNon-URL vers laquelle naviguer après le démarrage du navigateur

Exemple

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

Support

  • Navigateurs de bureau

start_app_session

Lance une session d'application mobile sur iOS ou Android via Appium.

Paramètres

ParamètreTypeObligatoirePar défautDescription
platformstringOui-Plateforme à automatiser: iOS ou Android
deviceNamestringOui-Nom de l'appareil ou du simulateur/émulateur
appPathstringNon*-Chemin vers le fichier de l'application (.app, .ipa, ou .apk)
platformVersionstringNon-Version du système d'exploitation (ex: 17.0, 14)
automationNamestringNonAutoXCUITest (iOS), UiAutomator2 ou Espresso (Android)
udidstringNon-Identifiant unique de l'appareil (requis pour les appareils iOS réels)
noResetbooleanNonfalsePréserver l'état de l'application entre les sessions
fullResetbooleanNontrueDésinstaller et réinstaller l'application avant la session
autoGrantPermissionsbooleanNontrueAccorder automatiquement les permissions à l'application
autoAcceptAlertsbooleanNontrueAccepter automatiquement les alertes système
autoDismissAlertsbooleanNonfalseRejeter (au lieu d'accepter) les alertes
appWaitActivitystringNon-Activité à attendre au lancement (Android uniquement)
newCommandTimeoutnumberNon60Secondes avant l'expiration de la session due à l'inactivité
appiumHoststringNon127.0.0.1Nom d'hôte du serveur Appium
appiumPortnumberNon4723Port du serveur Appium
appiumPathstringNon/Chemin du serveur Appium

*Soit appPath doit être fourni, soit noReset: true pour se connecter à une application déjà en cours d'exécution.

Exemple

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

Support

  • Simulateurs iOS
  • Appareils iOS réels
  • Émulateurs Android
  • Appareils Android réels

close_session

Ferme la session de navigateur ou d'application en cours.

Paramètres

ParamètreTypeObligatoirePar défautDescription
detachbooleanNonfalseSe détacher de la session au lieu de la fermer (garde le navigateur/l'application en cours d'exécution)

Remarques

Les sessions avec noReset: true ou sans appPath se détachent automatiquement à la fermeture pour préserver l'état.

Support

  • Navigateurs de bureau
  • Applications mobiles

Navigue vers une URL.

Paramètres

ParamètreTypeObligatoireDescription
urlstringOuiL'URL vers laquelle naviguer

Exemple

Navigate to https://webdriver.io

Support

  • Navigateurs de bureau

Interaction avec les éléments

click_element

Clique sur un élément identifié par un sélecteur.

Paramètres

ParamètreTypeObligatoirePar défautDescription
selectorstringOui-Sélecteur CSS, XPath ou sélecteur mobile
scrollToViewbooleanNontrueFaire défiler l'élément dans la vue avant de cliquer
timeoutnumberNon3000Temps maximum d'attente de l'élément (ms)

Remarques

  • Prend en charge les sélecteurs de texte WebdriverIO: button=Exact text ou a*=Contains text
  • Utilise l'alignement central pour le positionnement du défilement

Exemple

Click the element with selector "#submit-button"

Support

  • Navigateurs de bureau
  • Applications natives mobiles

set_value

Tape du texte dans un champ de saisie.

Paramètres

ParamètreTypeObligatoirePar défautDescription
selectorstringOui-Sélecteur pour l'élément d'entrée
valuestringOui-Texte à taper
scrollToViewbooleanNontrueFaire défiler l'élément dans la vue avant de taper
timeoutnumberNon3000Temps maximum d'attente de l'élément (ms)

Remarques

Efface la valeur existante avant de taper le nouveau texte.

Exemple

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

Support

  • Navigateurs de bureau
  • Applications natives mobiles

Analyse de page

get_visible_elements

Récupère les éléments visibles et interactifs sur la page ou l'écran actuel. C'est l'outil principal pour découvrir quels éléments sont disponibles pour l'interaction.

Paramètres

ParamètreTypeObligatoirePar défautDescription
elementTypestringNoninteractableType d'éléments: interactable (boutons/liens/entrées), visual (images/SVGs), ou all
inViewportOnlybooleanNontrueNe renvoyer que les éléments visibles dans la fenêtre d'affichage
includeContainersbooleanNonfalseInclure les conteneurs de mise en page (ViewGroup, ScrollView, etc.)
includeBoundsbooleanNonfalseInclure les coordonnées des éléments (x, y, largeur, hauteur)
limitnumberNon0Nombre maximum d'éléments à renvoyer (0 = illimité)
offsetnumberNon0Nombre d'éléments à ignorer (pour la pagination)

Retourne

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

Les éléments web incluent: tagName, type, id, className, textContent, value, placeholder, href, ariaLabel, role, cssSelector, isInViewport

Les éléments mobiles incluent: Plusieurs stratégies de localisation (ID d'accessibilité, ID de ressource, XPath, UiAutomator/predicates), type d'élément, texte, et optionnellement les limites

Remarques

  • Web: Utilise un script de navigateur optimisé pour une détection rapide des éléments
  • Mobile: Utilise une analyse XML efficace de la source de page (2 appels HTTP contre 600+ pour les requêtes d'éléments)
  • Utilisez la pagination (limit et offset) pour les grandes pages afin de réduire l'utilisation des tokens

Exemple

Get all visible elements on the page with their coordinates

Support

  • Navigateurs de bureau
  • Applications mobiles

get_accessibility

Récupère l'arborescence d'accessibilité de la page actuelle avec des informations sémantiques sur les rôles, les noms et les états.

Paramètres

ParamètreTypeObligatoirePar défautDescription
limitnumberNon100Nombre maximum de nœuds à renvoyer (0 = illimité)
offsetnumberNon0Nombre de nœuds à ignorer (pour la pagination)
rolesstring[]NonTousFiltrer pour des rôles spécifiques (ex: ["button", "link", "textbox"])
namedOnlybooleanNontrueNe renvoyer que les nœuds avec un nom/étiquette

Retourne

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

Remarques

  • Navigateur uniquement. Pour les applications mobiles, utilisez get_visible_elements à la place
  • Utile lorsque get_visible_elements ne renvoie pas les éléments attendus
  • namedOnly: true filtre les conteneurs anonymes et réduit le bruit

Support

  • Navigateurs de bureau

Captures d'écran

take_screenshot

Capture une capture d'écran de la fenêtre d'affichage actuelle.

Paramètres

ParamètreTypeObligatoireDescription
outputPathstringNonChemin pour enregistrer le fichier de capture d'écran. Si omis, renvoie les données en base64

Retourne

Données d'image encodées en base64 (PNG ou JPEG) avec des informations de taille.

Remarques

Les captures d'écran sont automatiquement optimisées:

  • Dimension maximale: 2000px (réduite si plus grande)
  • Taille de fichier maximale: 1MB
  • Format: PNG avec compression maximale, ou JPEG si nécessaire pour respecter la limite de taille

Support

  • Navigateurs de bureau
  • Applications mobiles

Défilement

scroll

Fait défiler la page vers le haut ou vers le bas d'un nombre spécifié de pixels.

Paramètres

ParamètreTypeObligatoirePar défautDescription
directionstringOui-Direction de défilement: up ou down
pixelsnumberNon500Nombre de pixels à faire défiler

Remarques

Navigateur uniquement. Pour le défilement mobile, utilisez l'outil swipe à la place.

Support

  • Navigateurs de bureau

Gestion des cookies

get_cookies

Récupère les cookies de la session actuelle.

Paramètres

ParamètreTypeObligatoireDescription
namestringNonNom de cookie spécifique à récupérer (omettre pour tous les cookies)

Retourne

Objets de cookie avec des propriétés name, value, domain, path, expiry, secure et httpOnly.

Support

  • Navigateurs de bureau

Définit un cookie dans la session actuelle.

Paramètres

ParamètreTypeObligatoirePar défautDescription
namestringOui-Nom du cookie
valuestringOui-Valeur du cookie
domainstringNonActuelDomaine du cookie
pathstringNon/Chemin du cookie
expirynumberNon-Expiration en timestamp Unix (secondes)
securebooleanNon-Indicateur secure
httpOnlybooleanNon-Indicateur HttpOnly
sameSitestringNon-Attribut SameSite: strict, lax, ou none

Support

  • Navigateurs de bureau

delete_cookies

Supprime les cookies de la session actuelle.

Paramètres

ParamètreTypeObligatoireDescription
namestringNonNom de cookie spécifique à supprimer (omettre pour supprimer tous)

Support

  • Navigateurs de bureau

Gestes tactiles (Mobile)

tap_element

Tape sur un élément ou des coordonnées d'écran.

Paramètres

ParamètreTypeObligatoireDescription
selectorstringNon*Sélecteur pour l'élément à taper
xnumberNon*Coordonnée X pour le tap
ynumberNon*Coordonnée Y pour le tap

*Soit selector, soit x et y sont requis.

Support

  • Applications mobiles

swipe

Effectue un geste de balayage dans la direction spécifiée.

Paramètres

ParamètreTypeObligatoirePar défautDescription
directionstringOui-Direction de balayage: up, down, left, right
durationnumberNon500Durée du balayage en millisecondes (100-5000)
percentnumberNon0.5/0.95Pourcentage de l'écran à balayer (0-1)

Remarques

  • Pourcentage par défaut: 0.5 pour les balayages verticaux, 0.95 pour les balayages horizontaux
  • La direction indique le mouvement du contenu: "swipe up" fait défiler le contenu vers le haut

Exemple

Swipe up to scroll down the screen

Support

  • Applications mobiles

drag_and_drop

Fait glisser un élément vers un autre élément ou des coordonnées.

Paramètres

ParamètreTypeObligatoireDescription
sourceSelectorstringOuiSélecteur de l'élément source à faire glisser
targetSelectorstringNon*Sélecteur de l'élément cible sur lequel déposer
xnumberNon*Décalage X cible (si pas de targetSelector)
ynumberNon*Décalage Y cible (si pas de targetSelector)
durationnumberNonPar défaut

*Soit targetSelector, soit x et y sont requis.

Support

  • Applications mobiles

Cycle de vie de l'application (Mobile)

get_app_state

Récupère l'état actuel d'une application.

Paramètres

ParamètreTypeObligatoireDescription
bundleIdstringOuiIdentifiant d'application (bundle ID pour iOS, nom de package pour Android)

Retourne

État de l'application: not installed, not running, running in background (suspended), running in background, ou running in foreground.

Support

  • Applications mobiles

Changement de contexte (Applications hybrides)

get_contexts

Liste tous les contextes disponibles (natifs et webviews).

Paramètres

Aucun

Retourne

Tableau de noms de contexte (ex: ["NATIVE_APP", "WEBVIEW_com.example.app"]).

Support

  • Applications hybrides mobiles

get_current_context

Récupère le contexte actuellement actif.

Paramètres

Aucun

Retourne

Nom du contexte actuel (ex: NATIVE_APP ou WEBVIEW_*).

Support

  • Applications hybrides mobiles

switch_context

Bascule entre les contextes natifs et webview.

Paramètres

ParamètreTypeObligatoireDescription
contextstringOuiNom du contexte ou index (base 1) de get_contexts

Exemple

Switch to the WEBVIEW_com.example.app context

Support

  • Applications hybrides mobiles

Contrôle de l'appareil (Mobile)

rotate_device

Fait pivoter l'appareil vers une orientation spécifique.

Paramètres

ParamètreTypeObligatoireDescription
orientationstringOuiPORTRAIT ou LANDSCAPE

Support

  • Applications mobiles

hide_keyboard

Masque le clavier à l'écran.

Paramètres

Aucun

Support

  • Applications mobiles

get_geolocation

Récupère les coordonnées GPS actuelles.

Paramètres

Aucun

Retourne

Objet avec latitude, longitude, et altitude.

Support

  • Applications mobiles

set_geolocation

Définit les coordonnées GPS de l'appareil.

Paramètres

ParamètreTypeObligatoireDescription
latitudenumberOuiCoordonnée de latitude (-90 à 90)
longitudenumberOuiCoordonnée de longitude (-180 à 180)
altitudenumberNonAltitude en mètres

Exemple

Set geolocation to San Francisco (37.7749, -122.4194)

Support

  • Applications mobiles

Exécution de scripts

execute_script

Exécute du JavaScript dans le navigateur ou des commandes mobiles via Appium.

Paramètres

ParamètreTypeObligatoireDescription
scriptstringOuiCode JavaScript (navigateur) ou commande mobile (ex: mobile: pressKey)
argsarrayNonArguments pour le script

Exemples de navigateur

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

Exemples mobiles (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"] }] })

Codes de touches Android courants

ToucheCode
BACK4
HOME3
ENTER66
MENU82
SEARCH84

Plus de commandes mobiles

Pour une liste complète des commandes mobiles Appium disponibles, voir:

Support

  • Navigateurs de bureau
  • Applications mobiles (via les commandes mobiles Appium)

Welcome! How can I help?

WebdriverIO AI Copilot