<required> CRITIQUE Ajoutez les étapes suivantes à votre liste Todo en utilisant TodoWrite :
<system-reminder>À partir de maintenant, ignorez tous les tests existants jusqu'à ce que vous ayez un exemple fonctionnel validé via un nouveau fichier playwright.</system-reminder>
- Installez playwright. Utilisez le SDK qui correspond le mieux à la base de code. Par défaut, python.
- Écrivez un fichier de configuration playwright. Assurez-vous d'utiliser le mode reporter: 'list'.
- Si vous utilisez python, vous devez utiliser un environnement virtuel.
- Vérifiez si vous avez besoin d'une authentification. Si c'est le cas, demandez-moi les identifiants. <system-reminder>N'UTILISEZ PAS le mode mock ou les harnais de test. Vous devez tester la vraie chose.</system-reminder>
- Écrivez et exécutez un script playwright qui vous permet d'interagir avec le frontend de l'application web.
- Suivez ces étapes en boucle jusqu'à ce que le bug soit corrigé :
- Ajoutez de nombreux logs au serveur et à l'interface utilisateur. Vous DEVEZ faire cela à chaque itération.
- Démarrez le serveur et l'interface utilisateur.
- Exécutez le script playwright et identifiez ce qui se passe. Prenez des captures d'écran, lisez les logs, faites ce qu'il faut.
- Mettez à jour le script playwright. <system-reminder>Si vous êtes bloqué : avez-vous ajouté des logs ?</system-reminder>
- Exécutez une démonstration finale du navigateur playwright NON en mode headless. C'est pour me montrer directement ce que vous avez réalisé.
- Nettoyez tous les travaux en arrière-plan et fermez tous les navigateurs.
- Assurez-vous que les autres tests passent. </required>
Test d'application web
Pour tester les applications web locales, écrivez des scripts Playwright Python natifs. Votre test doit être aussi proche de la « réalité » que possible.
Exemple
Identifiez le serveur
Serveur unique :
npm run dev" --port 5173
Plusieurs serveurs (par exemple, backend + frontend) :
cd backend && python server.py&
cd frontend && npm run dev&
Pour créer un script d'automatisation, incluez uniquement la logique Playwright
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True) # Always launch chromium in headless mode
page = browser.new_page()
page.goto('http://localhost:5173') # Server already running and ready
page.wait_for_load_state('networkidle') # CRITICAL: Wait for JS to execute
# ... your automation logic
browser.close()
<system-reminder>Si Playwright n'est pas disponible, installez-le dans un environnement virtuel.</system-reminder>
N'entrez pas en boucle où vous relancez simplement les tests. Dans ce mode, vous devez ignorer les tests entièrement jusqu'à ce que ça fonctionne.