Parlons de votre projet
Guide · Test automatique de site web

Automatisez les tests de votre site web avec Playwright

Un robot qui remplit vos formulaires, parcourt votre site et vérifie que tout fonctionne, à chaque mise en production. Chez un client, la recette est passée de 2 heures à 3 minutes.

Par Christophe Guyomar · Mis à jour le 6 octobre 2026

Rapport HTML Playwright avec la liste des tests réussis
Pourquoi

Pourquoi automatiser les tests de votre site ?

Chaque modification du site impose de retester les parcours à la main. Fastidieux, donc souvent bâclé, donc des régressions découvertes par vos clients.

30 → 2 minpar scénario de test
À chaque livraisonrelance en une commande
Régressionsdétectées avant vos clients
Preuvescaptures et vidéos de chaque test

E-commerce

Parcours d'achat complet, calcul du panier, codes promo, e-mails de confirmation.

Formulaires

Questionnaires multi-étapes, calculs automatiques, e-mails envoyés, enregistrement en base.

Espaces membres

Connexion, permissions, affichage des données personnelles, actions d'administration.

Démarrage

Installation en 3 commandes

Prérequis : Node.js installé (gratuit, 5 minutes).

mkdir mes-tests
cd mes-tests
npm init playwright@latest

Enregistrez votre premier test en naviguant normalement, le code est écrit pour vous :

npx playwright codegen https://monsite.fr

Lancez les tests, un rapport HTML s'ouvre :

npx playwright test
npx playwright show-report
Exemple

Code généré pour un questionnaire

await page.goto('https://monsite.fr/questionnaire');
await page.getByRole('combobox').first().click();
await page.getByRole('option', { name: 'Réponse A' }).click();
await page.getByRole('button', { name: 'Envoyer' }).click();
await expect(page.getByText('Merci')).toBeVisible();
Limites à connaîtrePlaywright ne teste que ce que vous avez prévu. Les sélecteurs peuvent casser lors d'une refonte graphique : privilégiez les rôles et les textes visibles.
Comparatif

Playwright vs Selenium vs Cypress

CritèrePlaywrightSeleniumCypress
Installation1 commande, navigateurs inclusPlus lourde (drivers)1 commande
NavigateursChromium, Firefox, WebKit (Safari)TousChromium, Firefox, WebKit expérimental
Attente des élémentsAutomatiqueÀ écrireAutomatique
Tests en parallèleNatif, gratuitAvec configurationVia le service cloud payant
Plusieurs ongletsOuiPossible, plus complexeNon
EnregistreurCodegen intégréSelenium IDE (extension)Studio
LangagesJS/TS, Python, Java, C#NombreuxJS/TS
Mon choixPlaywright pour un nouveau projet : l'attente automatique supprime une grande partie du code fragile, et tout s'installe en une commande. Selenium garde du sens pour des tests existants ou des équipes Java et C#. Cypress est confortable pour des développeurs front, mais limité dès qu'on jongle entre onglets.
Retour d'expérience

Recetter un questionnaire de 24 questions

Un diagnostic organisationnel en ligne : 24 questions, 3 profils utilisateurs, calculs, e-mails automatiques et un bilan généré côté administrateur. Avant : 2 heures de tests manuels à chaque livraison.

  1. 3 scénarios automatisés : remplissage par un utilisateur, arrêt de campagne par l'admin, consultation du bilan avec captures.
  2. 2 h → 3 min de recette, rejouée avant chaque rendez-vous client.
  3. Un rapport PDF de 15 pages qui sert de preuve de recette.
  4. Amorti dès la 3e livraison, et la cheffe de projet relance les tests elle-même.
Le piège rencontréLes questions se chargeaient dynamiquement et les textes de réponse (« Tout à fait ») se répétaient. Solution : attendre l'apparition de la question suivante plutôt qu'un délai fixe, et cibler le bloc de la question en cours.
Robustesse

7 astuces pour des tests qui durent

1. Des sélecteurs qui résistent

Évitez les chemins CSS fragiles, préférez les rôles et textes visibles, ou un attribut dédié.

await page.getByRole('button', { name: 'Envoyer' }).click();
await page.getByTestId('submit-form').click();

2. Attendre le bon élément

Plutôt qu'un délai fixe, attendez un élément de la page suivante.

await page.getByRole('button', { name: 'Suivant' }).click();
await expect(page.getByRole('heading', { name: 'Question 2' })).toBeVisible();

3. Des délais adaptés

Pour les parcours longs, augmentez le délai du test plutôt que d'empiler des pauses.

test.setTimeout(120000);

4. Preuves en cas d'échec

Capture et vidéo seulement quand un test échoue, dans playwright.config.

use: {
  screenshot: 'only-on-failure',
  video: 'retain-on-failure',
}

5. Tests en parallèle

Réglez le nombre de workers. Vos tests doivent être indépendants les uns des autres.

workers: 4,

6. Données centralisées

URL et comptes de test dans un seul fichier de configuration : un changement, tous les tests à jour. Ne versionnez jamais de vrais mots de passe.

7. Déboguer pas à pas

L'inspecteur montre exactement où ça bloque.

npx playwright test --debug
npx playwright test --ui
Dépannage

Les erreurs Playwright les plus fréquentes

MessageCauseSolution
Timeout 30000ms exceededL'élément n'apparaît pas, ou le sélecteur est faux.Vérifier le sélecteur avec codegen, augmenter le délai du test.
Strict mode violationLe sélecteur trouve plusieurs éléments.Cibler un conteneur (page.locator('dialog').getByText(…)) ou utiliser .first().
Element is not visibleL'élément existe mais est masqué (menu fermé, onglet caché).Ouvrir le menu d'abord, puis attendre qu'il soit visible.
Navigation timeoutLa page est trop lente à charger.waitUntil: 'domcontentloaded' et un délai plus long.
Clic interceptéBannière cookies ou fenêtre au-dessus de l'élément.Fermer la bannière au début du test.
Tests trop lentsPauses fixes, pas de parallélisme, vidéos systématiques.Attentes ciblées, plusieurs workers, vidéos seulement en échec.
Checklist de démarrage, environ une demi-journéeInstaller Node.js et Playwright (30 min) · enregistrer un premier test (15 min) · ajouter des vérifications (15 min) · captures en cas d'échec (5 min) · intégration GitLab ou GitHub (1 h) · former l'équipe à lancer les tests (30 min).

Besoin d'aide pour automatiser vos recettes ?

Installation, premiers scénarios, intégration continue et formation de votre équipe.

Réserver un échange →
Questions fréquentes

Playwright en questions

Faut-il savoir coder pour utiliser Playwright ?

Non pour démarrer : Playwright génère le code pendant que vous naviguez (codegen). Quelques notions de JavaScript aident ensuite à rendre les tests plus robustes.

Sur quels sites fonctionne Playwright ?

Tous : WordPress, sites sur mesure, applications web, formulaires, e-commerce, espaces membres.

Playwright est-il gratuit ?

Oui, Playwright est un projet open source gratuit, maintenu par Microsoft.

Combien de temps pour mettre en place des tests automatiques ?

Environ 2 heures pour installer et créer les 5 premiers tests, puis 10 à 15 minutes par nouveau test enregistré. Comptez une demi-journée pour une base solide avec intégration continue.

Playwright ou Selenium ?

Playwright pour un projet récent : installation en une commande, attente automatique des éléments, enregistreur intégré. Selenium reste pertinent pour des tests existants ou des équipes Java et C# déjà outillées.

Les tests peuvent-ils envoyer de vrais e-mails ?

Oui, mais utilisez des adresses de test, ou interceptez les envois avec un outil comme Mailtrap.