Playwright pour JavaScript (Node.js) : guide complet avec exemples
Playwright est une bibliothèque moderne et open-source d'automatisation de navigateurs, développée par Microsoft. Elle fournit une API unifiée pour contrôler Chromium, Firefox et WebKit (le moteur de Safari) via le protocole DevTools. Contrairement à Selenium, Playwright a été conçu dès le départ pour fonctionner avec les applications web modernes et prend en charge des scénarios tels que l'interception des requêtes réseau, l'émulation d'appareils mobiles, la gestion de plusieurs pages et onglets, ainsi que l'attente automatique des éléments.
L'objectif principal de Playwright est le test end-to-end (E2E) des applications web. Cependant, ses capacités vont bien au-delà des tests : la bibliothèque est utilisée pour le scraping de sites dynamiques (SPA), l'automatisation de tâches répétitives (comme le remplissage de formulaires), la création de captures d'écran et de rapports PDF, ainsi que pour la surveillance des performances des pages web. Grâce à la prise en charge des trois principaux moteurs de navigateur, vous pouvez être sûr que votre application fonctionne correctement dans n'importe quel environnement.
L'avantage clé de Playwright par rapport à ses concurrents est sa rapidité et sa fiabilité. La bibliothèque utilise une architecture asynchrone basée sur les promesses, attend automatiquement l'apparition des éléments (pas besoin d'écrire de sleep()), et sait gérer les iframes, les fenêtres contextuelles et intercepter les messages de la console du navigateur. Playwright fournit également un générateur de tests intégré (codegen) qui enregistre vos actions dans le navigateur et les transforme en code prêt à l'emploi.
Installation de Playwright
Pour installer Playwright dans un projet Node.js, exécutez les commandes suivantes dans votre terminal :
npm init -y
npm install playwright
npx playwright install
La première commande crée le fichier package.json, la deuxième installe la bibliothèque elle-même, et la troisième télécharge les navigateurs (Chromium, Firefox et WebKit). Si vous souhaitez installer un seul navigateur, utilisez npx playwright install chromium.
Pour TypeScript, installez également les types :
npm install -D @playwright/test
Si vous utilisez Playwright comme framework de test, il est recommandé d'installer @playwright/test, qui inclut le runner de tests, les fixtures et la configuration.
Démarrage rapide : exemple minimal fonctionnel
Créez un fichier example.js et insérez le code suivant :
const { chromium } = require('playwright');
(async () => {
// Lance le navigateur (headless: true — sans interface graphique)
const browser = await chromium.launch({ headless: true });
// Crée une nouvelle page (onglet)
const page = await browser.newPage();
// Navigue vers le site
await page.goto('https://example.com');
// Récupère le titre de la page
const title = await page.title();
console.log('Titre de la page :', title);
// Prend une capture d'écran
await page.screenshot({ path: 'example.png' });
// Ferme le navigateur
await browser.close();
})();
Exécutez le script avec la commande node example.js. Vous verrez le titre de la page dans la console, et le fichier example.png contenant la capture d'écran apparaîtra dans le dossier.
Cet exemple illustre le cycle de base de travail avec Playwright : lancer le navigateur, créer une page, naviguer, interagir avec le DOM et fermer.
Méthodes et classes principales de Playwright
Voici les méthodes et classes clés de la bibliothèque. Pour chacune, la signature, une brève description et un exemple fonctionnel sont fournis.
1. browser.newPage()
Signature : async browser.newPage(options?: BrowserContextOptions): Promise<Page>
Description : Crée une nouvelle page (onglet) dans le contexte actuel du navigateur. Chaque page est isolée des autres — elle a son propre historique de navigation, ses cookies et son stockage local.
Aussi dans la bibliothèque
MetricsKit — surveillance des applications Swift sur iOS/macOS
Parsing HTML en C# (.NET) : aperçu des bibliothèques et exemples de code
Traitement JSON en C# (.NET) : Guide complet sur Newtonsoft.Json et System.Text.Json