Introduction à Playwright
Playwright est un framework de test d'automatisation web open source développé par Microsoft, utilisé pour les tests de bout en bout sur trois principaux moteurs de navigateur : Chromium, Firefox et WebKit.
En termes simples, c'est un outil qui vous aide à contrôler le navigateur par programmation. On peut le considérer comme un utilisateur virtuel capable d'effectuer diverses opérations sur les pages web comme un humain, telles que cliquer sur des boutons, remplir des formulaires, naviguer vers différentes pages, prendre des captures d'écran et enregistrer le contenu web.

Playwright est le framework d'automatisation de navigateur moderne et open-source de Microsoft. Avec peu de code, il peut automatiquement effectuer des opérations de navigateur humaines dans Chromium (Chrome/Edge), Firefox et WebKit (moteur Safari) : ouvrir des pages web, cliquer, taper, glisser, télécharger des fichiers, prendre des captures d'écran/PDF, enregistrer des journaux et rejouer. L'utilisation la plus courante est le test de bout en bout (E2E), et il peut également être utilisé pour le crawling léger et l'automatisation des processus.
Playwright fournit des SDK multi-langages pour JS/TS, Python, Java et .NET, parmi lesquels JS/TS + Playwright Test est la combinaison la plus répandue.
Navigateurs pris en charge
| Navigateur | Moteur de rendu | Prise en charge des plateformes |
|---|---|---|
| Chromium | Blink (identique à Chrome) | Windows / macOS / Linux |
| Firefox | Gecko | Windows / macOS / Linux |
| WebKit | WebKit (identique à Safari) | Windows / macOS / Linux |
Playwright utilise des versions de test officielles des navigateurs (Chromium au lieu de Google Chrome, WebKit au lieu de Safari), mais son comportement est très cohérent avec les versions officielles.
Principaux scénarios d'application de Playwright
Playwright n'est pas seulement utilisé pour les tests ; ses fonctionnalités puissantes le rendent très utile dans de nombreux domaines :
- Tests de bout en bout (E2E) :C'est l'application principale de Playwright. Il peut simuler des scénarios utilisateur réels et tester si l'ensemble du flux de votre site web fonctionne correctement du début à la fin.
- Crawling Web et scraping de données :Si vous souhaitez extraire automatiquement des données de pages web, Playwright peut vous y aider facilement. Il peut rendre le contenu chargé dynamiquement en JavaScript, ce qui le rend plus puissant que les outils de crawling traditionnels.
- Automatisation Web :Toute opération web répétitive, comme le check-in automatique, le téléchargement de fichiers par lots, le remplissage de rapports, etc., peut être automatisée avec Playwright.
- Génération de captures d'écran et de PDF :Vous pouvez utiliser Playwright pour prendre des captures d'écran de pages web ou enregistrer le contenu d'une page web au format PDF.
Que peut faire Playwright ?
En résumé, en une phrase :Tant qu'un humain peut cliquer dans le navigateur, Playwright peut presque tout automatiser.。
Les capacités spécifiques incluent :
- Prise en charge multi-navigateurs: Un même code peut s'exécuter simultanément sur Chromium (Chrome/Edge), Firefox et WebKit (Safari).
- Exécution multiplateforme: Prend en charge Windows, Linux et macOS.
- Invocation inter-langages: Prend en charge non seulement JavaScript/TypeScript, mais aussi Python, C# et Java.
- Prise en charge du Web moderne: Gestion stable des applications monopages (SPA), du chargement dynamique, des iframes et des pages à onglets multiples.
Par exemple :
Vous voulez tester une fonctionnalité de « connexion ».
- Test manuel : Ouvrir le navigateur à chaque fois → saisir le compte et le mot de passe → cliquer sur connexion → vérifier la page.
- Tests Playwright : écrivez un script qui exécute automatiquement les actions ci-dessus et peut être répété des centaines de fois en toute simplicité.
Playwright vs autres outils de test
Playwright vs Puppeteer
| Dimension de comparaison | Playwright | Puppeteer |
|---|---|---|
| Prise en charge des navigateurs | Chromium + Firefox + WebKit | Chromium / Firefox uniquement (limité) |
| Exécuteur de tests | Exécuteur de tests complet intégré | Pas d'exécuteur intégré, nécessite Jest/Mocha |
| Attente automatique | Entièrement intégré | Gestion manuelle requise |
| Isolation des tests | Prise en charge native de Browser Context | Doit être géré vous-même |
| Émulation mobile | Émulation complète d'appareil | Émulation de base d'appareil |
| Mainteneur | Microsoft |
Puppeteer convient aux scripts simples d'automatisation de navigateur.
Playwright le surpasse globalement en matière de complétude des fonctionnalités et d'expérience de test, ce qui en fait le premier choix pour les scénarios de test.
Playwright vs Cypress
| Dimension de comparaison | Playwright | Cypress |
|---|---|---|
| Architecture | Exécution hors processus, contrôle total du navigateur | Exécution à l'intérieur du navigateur (restreinte par le bac à sable) |
| Multi-onglet / Multi-fenêtre | Entièrement pris en charge | Non pris en charge |
| Multi-navigateur | Chromium + Firefox + WebKit | Uniquement la famille Chromium + Firefox/WebKit expérimentaux |
| Prise en charge des iframes | Prise en charge native | Limité |
| Exécution parallèle | Prise en charge native, aucune configuration supplémentaire requise | Nécessite un Dashboard payant |
| Interception réseau | Interception et modification complètes des requêtes/réponses | Peut uniquement créer des stubs ou des espions |
| Vitesse d'exécution | Généralement plus rapide | Généralement plus lent (surcharge d'exécution dans le navigateur) |
Cypress offre une excellente expérience de développement et une interface de débogage conviviale.
Si vous avez besoin de la prise en charge de plusieurs navigateurs, d'opérations multi-onglets ou de l'exécution parallèle de grandes suites de tests, Playwright est plus adapté.
Playwright vs Selenium
Quand on parle d'automatisation de navigateur, la première chose à laquelle beaucoup de gens pensent estSelenium. Alors, quelle est la différence entre Playwright et lui ?
| Fonctionnalité | Selenium | Playwright |
|---|---|---|
| Date de sortie | 2004, avec une longue histoire | 2020, une étoile montante |
| Prise en charge des navigateurs | Chrome, Firefox, Safari, IE, etc. | Chromium, Firefox, WebKit (couverture complète des navigateurs modernes) |
| Conception de l'API | Les premières interfaces sont nombreuses et quelque peu complexes | L'API est simple et moderne, avec un faible coût d'apprentissage |
| Vitesse d'exécution | Plus lent, fait souvent face à des problèmes d'attente | Plus rapide, moins de délais d'attente |
| Fonctionnalités spéciales | Relativement puissant, écosystème mature | Prise en charge native des captures d'écran, de l'enregistrement vidéo et de la simulation des requêtes réseau |
Comparaison en une phrase :
- Selenium ressemble davantage à un « vétéran polyvalent », avec une longue histoire et un écosystème immense.
- Playwright ressemble davantage à une « jeune puissance », rapide, prenant en charge les fonctionnalités web modernes et disposant d'une API plus conviviale.

Pour quels scénarios est-il adapté ?
Playwright ne sert pas uniquement aux tests, mais peut aussi être utilisé dans de nombreux scénarios :
- Tests front-end: Tester automatiquement si les boutons, formulaires, navigation, etc. des pages web fonctionnent correctement.
- Tests de régression: Avant la mise en ligne de nouvelles fonctionnalités, exécuter tous les cas de test du site pour garantir que les anciennes fonctionnalités ne cassent pas.
- Collecte de données (crawling): Extraire des pages web dynamiques (comme des données nécessitant un défilement pour être visibles).
- Captures d'écran et PDF de pages web: Générer des captures d'écran ou des PDF pour des pages (par exemple pour générer des rapports).
- Automatisation des processus: Automatiser les opérations répétitives (comme la connexion automatique, le remplissage de formulaires par lots).
Pourquoi apprendre Playwright ?
- Adapté aux débutants : facile à installer, et vous pouvez le faire fonctionner avec quelques lignes de code.
- API intuitive : en utilisant
page.click()、page.fill()vous pouvez effectuer des opérations web. - Apprenez-le et vous pourrez gagner de l'argent : il est utilisé dans le développement front-end, l'ingénierie de test, et même certains emplois à temps partiel de collecte de données.
- Communauté active : Playwright est mis à jour rapidement, la documentation est claire, et il est facile de trouver des solutions lorsque vous rencontrez des problèmes.
En une phrase :
Playwright = un « robot intelligent » qui ouvre automatiquement des pages web, clique sur des boutons, remplit des formulaires et prend des captures d'écran pour vous. Il peut être utilisé pour les tests, comme outil de scraping web, et pour créer de petits outils d'automatisation.
Pourquoi choisir Playwright ?
Pour les débutants, Playwright présente plusieurs fonctionnalités très attrayantes :
- Attente automatique :C'est l'une des fonctionnalités les plus puissantes de Playwright. Lorsque vous écrivez des scripts d'automatisation, vous devez souvent attendre qu'un élément se charge ou devienne visible. Playwright dispose d'un mécanisme d'attente automatique intelligent intégré quiattend automatiquementque l'élément devienne disponible, sans que vous ayez à ajouter manuellement de fastidieuses
sleepouwaitfonctions. Cela rend votre code plus propre et plus stable. - Rapide et fiable :Playwright est très rapide car il communique directement avec le navigateur plutôt que par l'intermédiaire d'un protocole intermédiaire. Cette connexion directe garantit la stabilité et la fiabilité des opérations.
- API puissante :L'API de Playwright est très conviviale. Elle fournit un riche ensemble de méthodes qui vous permettent de gérer facilement diverses interactions web complexes, telles que la gestion des pop-ups, le téléversement de fichiers, la gestion de nouveaux onglets, et plus encore.
- Framework de test intégré :L'équipe Playwright fournit également un puissant exécuteur de tests
@playwright/test. Ce framework est livré avec des bibliothèques d'assertions, des générateurs de rapports de test, l'exécution parallèle et d'autres fonctionnalités avancées, ce qui le rend très pratique pour écrire et gérer des cas de test.
L'avantage principal de Playwright réside dans sa prise en charge multi-navigateurs.Il peut contrôler simultanémentChromium(Google Chrome et Microsoft Edge),FirefoxetWebKit(le moteur de Safari) — ces trois principaux navigateurs. Cela signifie que vous n'avez besoin d'écrire qu'un seul ensemble de code pour exécuter vos scripts d'automatisation sur tous ces navigateurs, ce qui réduit considérablement le travail répétitif.
Quatre fonctionnalités clés de Playwright
1. Véritable prise en charge multi-navigateurs
Playwright est le seul framework de test qui prend simultanément en charge les trois principaux moteurs de navigateur : Chromium, Firefox et WebKit.
Chaque navigateur dispose d'une couche de pilote dédiée (Chromium utilise CDP, Firefox utilise le protocole Juggler, WebKit utilise le protocole personnalisé de Playwright), ce qui garantit la stabilité et la cohérence des opérations sous-jacentes.
2. Mécanisme d'attente automatique
Avant d'effectuer chaque action, Playwright attend automatiquement que l'élément devienne actionnable (attaché au DOM, visible, stable, recevant des événements et activé).
Les assertions réessayent également automatiquement jusqu'à ce que la condition soit remplie ou qu'un délai d'attente soit dépassé.
Cela résout fondamentalement le problème le plus courantde test instable (flaky test)dans les tests traditionnels.
3. Isolation des tests
Playwright introduitBrowser Context, le concept de contexte de navigateur, où chaque test s'exécute dans un contexte de navigateur indépendant (équivalent à un tout nouveau profil de navigateur).
Chaque contexte dispose de ses propres localStorage, sessionStorage et cookies indépendants, de sorte que les tests ne s'affectent pas mutuellement.
La création d'un contexte a un coût extrêmement faible (de l'ordre de la milliseconde), bien plus rapide que le lancement d'une nouvelle instance de navigateur à chaque fois.
4. Prise en charge de plusieurs langages
Playwright fournit des API dans quatre langages : JavaScript/TypeScript, Python, Java et .NET. Tous les langages partagent la même philosophie de conception et les mêmes fonctionnalités.
| Langage | Commande d'installation | Cas d'utilisation |
|---|---|---|
| JavaScript / TypeScript | npm init playwright@latest | Équipes front-end, projets Node.js |
| Python | pip install playwright | Écosystème Python, projets IA/ML |
| Java | Dépendance Maven/Gradle | Projets Java d'entreprise |
| .NET | Package NuGet | Stack technologique Microsoft |
Matrice de produits Playwright
Playwright n'est pas un seul outil ; c'est une plateforme avec plusieurs composants :
| Produit | Objectif | Méthode d'installation |
|---|---|---|
| Playwright Test | Framework de tests de bout en bout complet | npm init playwright@latest |
| Bibliothèque Playwright | Bibliothèque de scripts d'automatisation de navigateur | npm i playwright |
| Playwright MCP | Contrôle du navigateur par agent IA (protocole MCP) | npx @playwright/mcp@latest |
| Playwright CLI | Outil en ligne de commande pour agent de codage | npm i -g @playwright/cli@latest |
| Extension VS Code | Débogage et enregistrement des tests dans l'éditeur | Place de marché VS Code |