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