close
Aller au contenu principal

FAQ

Questions fréquemment posées sur WebdriverIO MCP.

GĂ©nĂ©ral​

Qu'est-ce que MCP ?​

MCP (Model Context Protocol) est un protocole ouvert qui permet aux assistants IA comme Claude d'interagir avec des outils et services externes. WebdriverIO MCP implémente ce protocole pour fournir des capacités d'automatisation de navigateur et mobile à Claude Desktop et Claude Code.

Que puis-je automatiser avec WebdriverIO MCP ?​

Vous pouvez automatiser :

  • Navigateurs de bureau (Chrome) - navigation, clics, saisie, captures d'Ă©cran
  • Applications iOS - sur simulateurs ou appareils rĂ©els
  • Applications Android - sur Ă©mulateurs ou appareils rĂ©els
  • Applications hybrides - passage entre contextes natifs et web

Dois-je Ă©crire du code ?​

Non ! C'est l'avantage principal de MCP. Vous pouvez décrire ce que vous voulez faire en langage naturel, et Claude utilisera les outils appropriés pour accomplir la tùche.

Exemples de prompts :

  • "Ouvre Chrome et navigue vers webdriver.io"
  • "Clique sur le bouton Get Started"
  • "Prends une capture d'Ă©cran de la page actuelle"
  • "DĂ©marre mon application iOS et connecte-toi en tant qu'utilisateur test"

Installation et configuration​

Comment installer WebdriverIO MCP ?​

Vous n'avez pas besoin de l'installer séparément. Le serveur MCP s'exécute automatiquement via npx lorsque vous le configurez dans Claude Desktop ou Claude Code.

Ajoutez ceci Ă  votre configuration Claude Desktop :

{
"mcpServers": {
"wdio-mcp": {
"command": "npx",
"args": ["-y", "@wdio/mcp"]
}
}
}

OĂč se trouve le fichier de configuration Claude Desktop ?​

  • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows : %APPDATA%\Claude\claude_desktop_config.json

Ai-je besoin d'Appium pour l'automatisation de navigateur ?​

Non. L'automatisation de navigateur nécessite uniquement l'installation de Chrome. WebdriverIO gÚre ChromeDriver automatiquement.

Ai-je besoin d'Appium pour l'automatisation mobile ?​

Oui. L'automatisation mobile nécessite :

  1. Un serveur Appium en cours d'exécution (npm install -g appium && appium)
  2. Des pilotes de plateforme installés (appium driver install xcuitest pour iOS, appium driver install uiautomator2 pour Android)
  3. Des outils de développement appropriés (Xcode pour iOS, Android SDK pour Android)

Automatisation de navigateur​

Quels navigateurs sont pris en charge ?​

Actuellement, seul Chrome est pris en charge. La prise en charge d'autres navigateurs pourrait ĂȘtre ajoutĂ©e dans les versions futures.

Puis-je exĂ©cuter Chrome en mode headless ?​

Oui ! Demandez à Claude de démarrer le navigateur en mode headless :

"Démarre Chrome en mode headless"

Ou Claude utilisera cette option lorsque c'est approprié (par exemple, dans les contextes CI/CD).

Puis-je dĂ©finir la taille de la fenĂȘtre du navigateur ?​

Oui. Vous pouvez spécifier les dimensions au démarrage du navigateur :

"DĂ©marre Chrome avec une taille de fenĂȘtre de 1920x1080"

Dimensions prises en charge : 400-3840 pixels de large, 400-2160 pixels de haut. Par défaut : 1920x1080.

Puis-je dĂ©marrer le navigateur et naviguer en une seule Ă©tape ?​

Oui ! Utilisez le paramĂštre navigationUrl :

"Démarre Chrome et navigue vers https://webdriver.io"

C'est plus efficace que de démarrer le navigateur puis de naviguer séparément.

Comment prendre des captures d'Ă©cran ?​

Demandez simplement Ă  Claude :

"Prends une capture d'écran de la page actuelle"

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

  • RedimensionnĂ©es Ă  une dimension max de 2000px
  • CompressĂ©es Ă  une taille max de 1MB
  • Format : PNG ou JPEG (automatiquement sĂ©lectionnĂ© pour une qualitĂ© optimale)

Puis-je interagir avec les iframes ?​

Actuellement, le serveur MCP opĂšre sur le document principal. L'interaction avec les iframes pourrait ĂȘtre ajoutĂ©e dans les versions futures.

Puis-je exĂ©cuter du JavaScript personnalisĂ© ?​

Oui ! Utilisez l'outil execute_script :

"Exécute un script pour obtenir le titre de la page" "Exécute le script : return document.querySelectorAll('button').length"


Automatisation mobile​

Comment dĂ©marrer une application iOS ?​

Demandez à Claude avec les détails nécessaires :

"Démarre mon application iOS située à /path/to/MyApp.app sur le simulateur iPhone 15"

Ou pour une application installée :

"Démarre l'application avec noReset activé sur le simulateur iPhone 15"

Comment dĂ©marrer une application Android ?​

"Démarre mon application Android à /path/to/app.apk sur l'émulateur Pixel 7"

Ou pour une application installée :

"Démarre l'application avec noReset activé sur l'émulateur Pixel 7"

Puis-je tester sur des appareils rĂ©els ?​

Oui ! Pour les appareils réels, vous aurez besoin de l'UDID de l'appareil :

  • iOS : Connectez l'appareil, ouvrez Finder, cliquez sur l'appareil, cliquez sur le numĂ©ro de sĂ©rie pour rĂ©vĂ©ler l'UDID
  • Android : ExĂ©cutez adb devices dans le terminal

Puis demandez Ă  Claude :

"Démarre mon application iOS sur l'appareil réel avec l'UDID abc123..."

Comment gĂ©rer les boĂźtes de dialogue d'autorisation ?​

Par défaut, les autorisations sont accordées automatiquement (autoGrantPermissions: true). Si vous devez tester les flux d'autorisation, vous pouvez désactiver cette option :

"Démarre mon application sans accorder automatiquement les autorisations"

Quels gestes sont pris en charge ?​

  • Tap : Appuyer sur des Ă©lĂ©ments ou des coordonnĂ©es
  • Swipe : Glisser vers le haut, le bas, la gauche ou la droite
  • Drag and Drop : Faire glisser d'un Ă©lĂ©ment Ă  un autre ou vers des coordonnĂ©es

Remarque : long_press est disponible via execute_script avec les commandes mobiles Appium.

Comment faire dĂ©filer dans les applications mobiles ?​

Utilisez des gestes de balayage :

"Balaye vers le haut pour défiler vers le bas" "Balaye vers le bas pour défiler vers le haut"

Puis-je faire pivoter l'appareil ?​

Oui :

"Fais pivoter l'appareil en mode paysage" "Fais pivoter l'appareil en mode portrait"

Comment gĂ©rer les applications hybrides ?​

Pour les applications avec des webviews, vous pouvez changer de contexte :

"Obtiens les contextes disponibles" "Passe au contexte webview" "Retourne au contexte natif"

Puis-je exĂ©cuter des commandes mobiles Appium ?​

Oui ! Utilisez l'outil execute_script :

Exécute le script "mobile: pressKey" avec les arguments [{ keycode: 4 }]  // Appuie sur RETOUR sur Android
Exécute le script "mobile: activateApp" avec les arguments [{ appId: "com.example.app" }]
Exécute le script "mobile: terminateApp" avec les arguments [{ bundleId: "com.example.app" }]

SĂ©lection d'Ă©lĂ©ments​

Comment Claude sait-il avec quel Ă©lĂ©ment interagir ?​

Claude utilise l'outil get_visible_elements pour identifier les éléments interactifs sur la page/écran. Chaque élément est accompagné de plusieurs stratégies de sélecteur.

Que faire s'il y a trop d'Ă©lĂ©ments sur la page ?​

Utilisez la pagination pour gérer les grandes listes d'éléments :

"Obtiens les 20 premiers éléments visibles" "Obtiens les éléments visibles avec un décalage de 20 et une limite de 20"

La réponse inclut total, showing et hasMore pour aider à naviguer à travers les éléments.

Puis-je obtenir uniquement des types spĂ©cifiques d'Ă©lĂ©ments ?​

Oui ! Utilisez le paramĂštre elementType :

  • interactable (par dĂ©faut) : Boutons, liens, champs de saisie
  • visual : Images, SVGs
  • all : Les deux types

"Obtiens les éléments visuels visibles sur la page"

Que faire si Claude clique sur le mauvais Ă©lĂ©ment ?​

Vous pouvez ĂȘtre plus prĂ©cis :

  • Fournir le texte exact : "Clique sur le bouton qui dit 'Valider la commande'"
  • Fournir le sĂ©lecteur : "Clique sur l'Ă©lĂ©ment avec le sĂ©lecteur #submit-btn"
  • Fournir l'ID d'accessibilitĂ© : "Clique sur l'Ă©lĂ©ment avec l'ID d'accessibilitĂ© loginButton"

Quelle est la meilleure stratĂ©gie de sĂ©lecteur pour mobile ?​

  1. Accessibility ID (meilleur) - ~loginButton
  2. Resource ID (Android) - id=login_button
  3. Predicate String (iOS) - -ios predicate string:label == "Login"
  4. XPath (dernier recours) - plus lent mais fonctionne partout

Qu'est-ce que l'arbre d'accessibilitĂ© et quand devrais-je l'utiliser ?​

L'arbre d'accessibilité fournit des informations sémantiques sur les éléments de la page (rÎles, noms, états). Utilisez get_accessibility quand :

  • get_visible_elements ne renvoie pas les Ă©lĂ©ments attendus
  • Vous devez trouver des Ă©lĂ©ments par rĂŽle d'accessibilitĂ© (bouton, lien, zone de texte, etc.)
  • Vous avez besoin d'informations sĂ©mantiques dĂ©taillĂ©es sur les Ă©lĂ©ments

"Obtiens l'arbre d'accessibilité filtré aux rÎles de bouton et de lien"


Gestion de session​

Puis-je avoir plusieurs sessions en mĂȘme temps ?​

Non. Le serveur MCP utilise un modĂšle Ă  session unique. Une seule session de navigateur ou d'application peut ĂȘtre active Ă  la fois.

Que se passe-t-il lorsque je ferme une session ?​

Cela dépend du type de session et des paramÚtres :

  • Navigateur : Chrome se ferme complĂštement
  • Mobile avec noReset: false : L'application se termine
  • Mobile avec noReset: true ou sans appPath : L'application reste ouverte (la session se dĂ©tache automatiquement)

Puis-je prĂ©server l'Ă©tat de l'application entre les sessions ?​

Oui ! Utilisez l'option noReset :

"Démarre mon application avec noReset activé"

Cela préserve l'état de connexion, les préférences et autres données de l'application.

Quelle est la diffĂ©rence entre fermer et dĂ©tacher ?​

  • Fermer : Termine complĂštement le navigateur/l'application
  • DĂ©tacher : DĂ©connecte l'automatisation mais garde le navigateur/l'application en cours d'exĂ©cution

Le détachement est utile lorsque vous souhaitez inspecter manuellement l'état aprÚs l'automatisation.

Ma session expire continuellement pendant le dĂ©bogage​

Augmentez le délai de commande :

"Démarre mon application avec un newCommandTimeout de 300 secondes"

La valeur par défaut est de 60 secondes. Pour les longues sessions de débogage, essayez 300-600 secondes.


DĂ©pannage​

Erreur "Session non trouvĂ©e"​

Cela signifie qu'aucune session active n'existe. Démarrez d'abord une session de navigateur ou d'application :

"Démarre Chrome et navigue vers google.com"

Erreur "ÉlĂ©ment non trouvĂ©"​

L'Ă©lĂ©ment pourrait ne pas ĂȘtre visible ou avoir un sĂ©lecteur diffĂ©rent. Essayez :

  1. De demander d'abord à Claude d'obtenir tous les éléments visibles
  2. De fournir un sélecteur plus spécifique
  3. D'attendre que la page/application se charge complĂštement
  4. D'utiliser inViewportOnly: false pour trouver des éléments hors écran

Le navigateur ne dĂ©marre pas​

  1. Assurez-vous que Chrome est installé
  2. Vérifiez si un autre processus utilise le port de débogage (9222)
  3. Essayez le mode headless

La connexion Appium a Ă©choué​

C'est le problÚme le plus courant lors du démarrage de l'automatisation mobile.

  1. Vérifiez qu'Appium est en cours d'exécution : curl http://localhost:4723/status
  2. Démarrez Appium si nécessaire : appium
  3. Vérifiez que votre configuration d'URL Appium correspond au serveur
  4. Assurez-vous que les pilotes sont installés : appium driver list --installed
astuce

Le serveur MCP nécessite qu'Appium soit en cours d'exécution avant de démarrer les sessions mobiles. Assurez-vous de démarrer Appium d'abord :

appium

Les versions futures pourraient inclure une gestion automatique du service Appium.

Le simulateur iOS ne dĂ©marre pas​

  1. Assurez-vous que Xcode est installé : xcode-select --install
  2. Listez les simulateurs disponibles : xcrun simctl list devices
  3. Vérifiez les erreurs spécifiques au simulateur dans Console.app

L'Ă©mulateur Android ne dĂ©marre pas​

  1. Définissez ANDROID_HOME : export ANDROID_HOME=$HOME/Library/Android/sdk
  2. Vérifiez les émulateurs : emulator -list-avds
  3. Démarrez l'émulateur manuellement : emulator -avd <avd-name>
  4. Vérifiez que l'appareil est connecté : adb devices

Les captures d'Ă©cran ne fonctionnent pas​

  1. Pour mobile, assurez-vous que la session est active
  2. Pour le navigateur, essayez une page différente (certaines pages bloquent les captures d'écran)
  3. Vérifiez les journaux Claude Desktop pour les erreurs

Les captures d'Ă©cran sont automatiquement compressĂ©es Ă  1MB maximum, donc les grandes captures fonctionneront mais pourront ĂȘtre de qualitĂ© infĂ©rieure.


Performance​

Pourquoi l'automatisation mobile est-elle lente ?​

L'automatisation mobile implique :

  1. Communication réseau avec le serveur Appium
  2. Communication d'Appium avec l'appareil/simulateur
  3. Rendu et réponse de l'appareil

Conseils pour une automatisation plus rapide :

  • Utilisez des Ă©mulateurs/simulateurs au lieu d'appareils rĂ©els pour le dĂ©veloppement
  • Utilisez des accessibility IDs au lieu de XPath
  • Activez inViewportOnly: true pour la dĂ©tection d'Ă©lĂ©ments
  • Utilisez la pagination (limit) pour rĂ©duire l'utilisation de tokens

Comment accĂ©lĂ©rer la dĂ©tection d'Ă©lĂ©ments ?​

Le serveur MCP optimise dĂ©jĂ  la dĂ©tection d'Ă©lĂ©ments en utilisant l'analyse XML de la source de page (2 appels HTTP contre 600+ pour les requĂȘtes d'Ă©lĂ©ments traditionnelles). Conseils supplĂ©mentaires :

  • Gardez inViewportOnly: true (par dĂ©faut)
  • RĂ©glez includeContainers: false (par dĂ©faut)
  • Utilisez limit et offset pour la pagination sur les grands Ă©crans
  • Utilisez des sĂ©lecteurs spĂ©cifiques au lieu de chercher tous les Ă©lĂ©ments

Les captures d'Ă©cran sont lentes ou Ă©chouent​

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

  • RedimensionnĂ©es si elles dĂ©passent 2000px
  • CompressĂ©es pour rester sous 1MB
  • Converties en JPEG si le PNG est trop volumineux

Cette optimisation réduit le temps de traitement et garantit que Claude peut gérer l'image.


Limitations​

Quelles sont les limitations actuelles ?​

  • Session unique : Un seul navigateur/application Ă  la fois
  • Support de navigateur : Chrome uniquement (pour l'instant)
  • Support d'iframe : Support limitĂ© pour les iframes
  • TĂ©lĂ©chargements de fichiers : Pas directement pris en charge via les outils
  • Audio/VidĂ©o : Impossible d'interagir avec la lecture multimĂ©dia
  • Extensions de navigateur : Non prises en charge

Puis-je l'utiliser pour les tests de production ?​

WebdriverIO MCP est conçu pour l'automatisation interactive assistée par IA. Pour les tests de production CI/CD, envisagez d'utiliser le test runner traditionnel de WebdriverIO avec un contrÎle programmatique complet.


SĂ©curité​

Mes donnĂ©es sont-elles sĂ©curisĂ©es ?​

Le serveur MCP s'exécute localement sur votre machine. Toute l'automatisation se fait via des connexions locales au navigateur/Appium. Aucune donnée n'est envoyée à des serveurs externes au-delà de ce vers quoi vous naviguez explicitement.

Claude peut-il accĂ©der Ă  mes mots de passe ?​

Claude peut voir le contenu de la page et interagir avec les éléments, mais :

  • Les mots de passe dans les champs <input type="password"> sont masquĂ©s
  • Vous devriez Ă©viter d'automatiser des identifiants sensibles
  • Utilisez des comptes de test pour l'automatisation

Contribution​

Comment puis-je contribuer ?​

Visitez le dépÎt GitHub pour :

  • Signaler des bugs
  • Demander des fonctionnalitĂ©s
  • Soumettre des pull requests

OĂč puis-je obtenir de l'aide ?​

Welcome! How can I help?

WebdriverIO AI Copilot