Accueil / Articles

Playwright ou agents navigateurs ? Là où l’automatisation scriptée reste gagnante.

Scénarios de dramaturge contre agents navigateurs pilotés par MCP : fragilité, déterminisme et coût, une tâche de facturation réalisée des deux manières, les risques de sécurité et les cas où chacun l’emporte.

Éditeur : REACTAPP.TOP8 min de lecture1835 mots

Sources: Playwright vs WebMCP: Will Browser Automation Survive the Agent Era?

Le Web a été conçu pour que les gens cliquent sur des liens et lisent des pages. Selenium, Puppeteer et Playwright permettent alors au code de réaliser ces actions de clic. Pendant plus de dix ans, l’automatisation des navigateurs signifiait écrire un script, décrire chaque étape en détail et le lancer encore et encore. Les agents d’IA changent aujourd’hui la donne. Ils peuvent raisonner, planifier et agir, et ils naviguent sur une page de la même manière qu’un être humain : ils la regardent, en comprennent le contenu, puis décident de la suite à donner. Cela soulève une question importante : le Model Context Protocol (MCP) rend-il l’automatisation par script obsolète, ou Playwright conserve-t-il encore sa place ?

Pourquoi les développeurs aiment Playwright

Playwright, développé par Microsoft, est un framework moderne d’automatisation des navigateurs. Le code écrit avec cet outil fait fonctionner Chromium, Firefox ou WebKit pour cliquer sur des boutons, remplir des formulaires, extraire des données et exécuter des tests du début à la fin. Voici un petit exemple :

const { chromium } = require('playwright');
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com/login');
await page.fill('#email', 'user@example.com');
await page.fill('#password', 'secret');
await page.click('button[type="submit"]');
await page.waitForURL('**/dashboard');
console.log('Logged in!');
await browser.close();

Le résultat est propre, déterministe et prévisible. Les raisons habituelles de sa popularité :

  • Le support multi-navigateurs est intégré de base.
  • L’isolation des tests et les exécutions parallèles sont très fiables.
  • La fonction d’attente automatique remplace les anciennes astuces utilisant sleep(2000).
  • Le suivi, les captures d’écran et l’enregistrement vidéo sont inclus.
  • Il s’intègre parfaitement dans les pipelines CI/CD.

Pour l’automatisation des tests de qualité, les tests de régression et les workflows web scriptés, c’est la référence.

Où les scripts posent problème

La faiblesse réside dans la fragilité. Changer le nom de la classe CSS d’un bouton fait échouer le script. Déplacer un champ de formulaire provoque également un échec. Mettre en place une version A/B avec un nouveau layout entraîne à nouveau un échec. Chaque script représente une carte en dur basée sur des hypothèses concernant l’apparence d’une page à un moment donné, or les interfaces utilisateur ne cessent de changer. Maintenir un ensemble important de scripts Playwright fonctionnel dans une entreprise en pleine évolution peut devenir un second emploi à plein temps.

Une analogie aide à comprendre. Un script est comme une carte laminée indiquant les itinéraires en ville. Il fonctionne tant qu’une route n’est pas fermée, qu’un bâtiment n’est pas déplacé ou qu’une voie à sens unique n’apparaît pas. Un meilleur navigateur regarderait autour de lui, lirait les panneaux indicateurs et trouverait son chemin en temps réel.

Ce que MCP apporte

MCP, introduit par Anthropic à la fin de 2024, est un standard ouvert permettant de connecter des modèles d’IA tels que Claude à des outils externes, des sources de données et des environnements de manière structurée. Il fonctionne comme un système de plugins universel pour les agents. Au lieu de rester confiné dans une fenêtre de chat, un modèle peut accéder à des bases de données, des API, des systèmes de fichiers et des navigateurs web.

Un serveur Playwright MCP existe désormais, exposant des actions de navigateur sous forme de fonctions que les agents peuvent appeler. Un développeur écrirait alors une ligne comme celle-ci :

await page.click('#submit-button');

Un agent reçoit plutôt un but :

"Submit the contact form on acme.com with the user's name and email"

De là, il navigue, localise des éléments et interagit avec la page en utilisant la vision, l’analyse HTML et le raisonnement, sans aucun sélecteur codé à l’avance.

Comparaison directe

Playwright, l’approche traditionnelle

  • Contrôle : le développeur écrit chaque étape.
  • Sélecteurs : CSS, XPath ou texte.
  • Résilience aux changements de l’interface : il cesse de fonctionner lorsque l’interface change.
  • Préparation : modérée, car du code est nécessaire.
  • Déterminisme : entièrement déterministe.
  • Débogage : facile, grâce à des journaux de suivi et des captures d’écran.
  • Vitesse : rapide.
  • Cost : uniquement des coûts de calcul.
  • Meilleur pour : les tests de régression et les pipelines CI/CD.
  • Fiabilité : élevée lorsqu’il est maintenu.

WebMCP ou Playwright MCP, l’approche par agent

  • Contrôle : un agent IA raisonne et prend des décisions.
  • Sélecteurs : langage naturel associé à une compréhension visuelle.
  • Résilience aux changements de l’interface utilisateur : s’adapte en réanalysant le DOM actuel.
  • Mise en place : faible, car il suffit de décrire l’objectif.
  • Déterminisme : non déterministe, car la réflexion repose sur des LLM.
  • Débogage : plus difficile, car la question porte sur les raisons pour lesquelles l’agent a choisi cette action.
  • Vitesse : plus lente en raison des coûts de traitement des LLM.
  • Coût : calculs informatiques plus tokens API des LLM.
  • Meilleur adapté aux : tâches dynamiques, workflows complexes et agents.
  • Fiable : en amélioration, mais pas encore au niveau de production.

Une tâche, deux méthodes

La tâche : se connecter à un tableau de bord SaaS, trouver la dernière facture et la télécharger en PDF.

Avec Playwright, le script se rend sur la page de connexion, remplit l’adresse e-mail et le mot de passe à l’aide de sélecteurs data-testid, clique sur le bouton de connexion et procède étape par étape.

await page.goto('https://app.saas.com/login');
await page.fill('[data-testid="email"]', credentials.email);
await page.fill('[data-testid="password"]', credentials.password);
await page.click('[data-testid="login-btn"]');
await page.waitForSelector('.dashboard');
await page.click('nav >> text=Billing');
await page.click('.invoice-list tr:first-child .download-btn');
await page.waitForEvent('download');

Imaginez ce qui se passerait si l’attribut data-testid était renommé lors d’une refonte, si la navigation des facturations était déplacée dans une barre latérale, ou si le tableau des factures était paginé différemment.

Avec un agent, l’instruction est un objectif exprimé en termes simples :

Goal: "Go to app.saas.com, log in with my credentials,
navigate to billing, find the most recent invoice,
and download it as a PDF."

L’agent charge la page, lit le DOM ainsi que le layout visuel, repère le formulaire de connexion par son contenu, remplit les identifiants et soumet la demande, cherche des liens de navigation indiquant « Facturation », « Factures » ou un terme similaire, trouve la facture la plus récente par date et clique sur « Télécharger ». Si l’interface change, il relit la page et s’adapte. Aucun script n’a besoin d’être mis à jour.

De l’automatisation par script à l’instruction

L’automatisation traditionnelle demande quels sont les étapes exactes que l’ordinateur doit suivre. L’automatisation de l’ère des agents demande quel est le résultat souhaité et si l’IA peut trouver les étapes nécessaires. En d’autres termes : les scripts programment le chemin, tandis que les instructions programment la destination.

Pour des tâches simples, stables et à grande échelle, comme 10 000 tests de régression dans un CI, le déterminisme de Playwright l’emporte à chaque fois. Pour des workflows complexes, changeants et uniques, du type de ceux que gérerait un assistant humain, les agents navigateurs pilotés via MCP prennent de l’avance.

Outils présents dans cette section

L’écosystème se développe rapidement :

  • Playwright MCP, un serveur MCP officiel qui expose les actions du navigateur Playwright aux agents IA.
  • Stagehand de Browserbase, une automatisation native de l’IA combinant Playwright avec des capacités visuelles de grands modèles linguistiques.
  • Browser Use, un framework open source pour des agents de navigation web.
  • Claude Computer Use, le système d’Anthropic capable de visualiser et de contrôler un poste de travail ou un navigateur complet.
  • OpenAI Operator, un agent GPT-4o qui navigue pour accomplir des tâches.
  • Skyvern, une automatisation basée sur la vision et les grands modèles linguistiques qui n’a pas besoin de sélecteurs.

Ce ne sont pas des jouets. Les entreprises les utilisent pour les workflows d’achat, l’extraction de données, la soumission de formulaires et le suivi des concurrents, des tâches qui exigeraient normalement des mois de développement de scripts.

Playwright disparaîtra-t-il ?

Non, bien que son rôle évolue. Il reste essentiel, mais il n’est plus le seul outil disponible. Il ressemble à SQL : fondamental, précis et irremplaçable pour les tâches structurées, mais il n’est plus le seul moyen d’obtenir des réponses. À l’avenir, ces deux approches seront utilisées selon les tâches pour lesquelles elles conviennent le mieux.

Choix entre les deux

La décision s’effectue selon un organigramme. Commencez par vous demander si la tâche est bien définie et si l’interface utilisateur est stable. Si c’est le cas, et que la tâche est exécutée de manière répétée à grande échelle, comme dans les tests d’intégration ou les tests de régression, les scripts sont la solution idéale. Si l’interface utilisateur change ou si la tâche est unique, un agent est plus adapté.

Is the task well-defined with a stable UI?
        │
        ├── YES → Does it run repeatedly at scale (CI/CD, regression)?
        │              │
        │              ├── YES → Use Playwright
        │              └── NO  → Either works; Playwright is cheaper
        │
        └── NO → Is the UI dynamic, unknown, or frequently changing?
                       │
                       ├── YES → Use MCP Agent / AI Browser
                       └── NO  → Does it require multi-step reasoning?
                                      │
                                      ├── YES → Use MCP Agent
                                      └── NO  → Use Playwright

Les deux prochaines années

Les agents ne supprimeront pas du jour au lendemain l’automatisation basée sur des scripts, mais plusieurs tendances sont déjà visibles.

  1. Les pipelines hybrides deviennent la norme. Playwright gère les 80 % de tâches stables et répétitives, tandis qu’un agent MCP s’occupe des 20 % imprévisibles qui perturbent les scripts à chaque itération.
  2. Playwright intègre des fonctionnalités d’IA. On peut s’attendre à des outils de correction de sélecteurs, permettant à un sélecteur défaillant de demander à un LLM de localiser l’élément équivalent sur la page mise à jour. Healenium et Reflect font déjà quelque chose de similaire, et un support natif dans Playwright semble probable.
  3. La fiabilité des agents s’améliore. Les agents actuels interprètent parfois mal une page, cliquent sur le mauvais élément ou sont perturbés par des pop-ups. De meilleurs modèles multimodaux tels que GPT-4o, Claude 3.5 Sonnet et Gemini 2.0 devraient réduire considérablement ces erreurs.
  4. Le QA change de forme. Au lieu d’écrire des scripts Playwright, les testeurs formuleront leurs intentions en langue naturelle et laisseront les agents les interpréter et les exécuter, passant ainsi de l’écriture de scripts à la spécification des résultats attendus.
  5. La sécurité devient une question urgente. Un agent disposant d’un contrôle autonome sur le navigateur pourrait cliquer sur quelque chose de non intentionnel, soumettre un formulaire avec des données incorrectes ou être manipulé par une page malveillante. L’injection de commandes via du contenu web, où une page amène un agent à effectuer des actions non désirées, constitue déjà une menace documentée. C’est là que réside le plus grand avantage de Playwright, car il fait exactement ce que le script indique et rien de plus.

Le contexte global

Pendant une décennie, l’automatisation des navigateurs a représenté un problème de traduction : transformer l’intention humaine en code capable d’imiter les actions humaines. Playwright a résolu ce problème de manière brillante. Les agents éliminent désormais cette étape de traduction, car l’intention exprimée en langage simple suffit, et l’agent s’occupe du reste. Cela ne rend pas Playwright obsolète ; cela le rend spécialisé, tout comme un chirurgien continue d’utiliser un scalpel à l’ère de la chirurgie robotisée. Le scalpel offre précision, contrôle et fiabilité, tandis que le robot permet de gérer la complexité, l’adaptabilité et l’échelle. La question pratique n’est plus Playwright contre MCP, mais plutôt quand un scalpel est nécessaire et quand un robot l’est.

Lectures complémentaires

  • Créer un agent de recherche local dans LM Studio à l’aide de quatre serveurs MCP — Combiner les serveurs de fichiers système, GitHub, SearXNG et Camofox MCP dans une même conversation de LM Studio, simplifier le schéma de l’outil, ajouter une instruction pour planifier la recherche et vérifier son fonctionnement grâce à une démonstration.
  • MCP et OAuth2 : Qui autorise l’action de l’agent ? — Pourquoi OAuth2 ne couvre qu’une partie de l’autorisation des agents sous MCP, et comment OIDC, les scopes, les règles confused-deputy, GNAP et les capacités s’interconnectent.
  • Dix-sept petits outils MCP au lieu d’un agent géant : un système d’écriture basé sur l’IA — Comment un système de recherche et d’écriture divise l’ingestion de vidéos, la recherche, la rédaction, la critique et la validation de code en outils MCP bien définis, avec des artefacts et un suivi des actions.
  • Notes pratiques : « MCP : le protocole qui transforme l’IA d’un chatbot en un agent d’IA — Guide pratique des notes pratiques : « MCP : le protocole qui transforme l’IA d’un chatbot en un agent d’IA » : contrats, vérifications et emplacements de code prêts à l’emploi pour les équipes qui développent des systèmes MCP.
  • WebMCP expliqué : permettre aux sites web de publier des outils au lieu que des agents cliquent sur des interfaces utilisateur — WebMCP permet à un site d’exposer des outils tels que add_todo directement aux agents IA, en remplaçant les clics basés sur des captures d’écran. Aborde les définitions des outils, OAuth et les raisons pour lesquelles on en est encore au stade initial.
  • Des captures d’écran comme preuves pour les agents IA : capture de page complète, zones sélectionnées et comparaisons — Pourquoi les agents ont besoin de plus qu’une simple capture d’écran avec Playwright : capture complète de la page, extraction de zones, stockage chiffré, comparaisons sans bruit, surveillance et limitation des dépenses MCP.