playwright

Utilise quand la tâche nécessite d'automatiser un vrai navigateur depuis le terminal (navigation, remplissage de formulaires, snapshots, captures d'écran, extraction de données, débogage de flux UI) via `playwright-cli` ou le script wrapper fourni.

npx skills add https://github.com/openai/skills --skill playwright

Compétence CLI Playwright

Pilotez un vrai navigateur depuis le terminal en utilisant playwright-cli. Préférez le script wrapper fourni pour que le CLI fonctionne même s'il n'est pas installé globalement. Traitez cette compétence comme une automation CLI-first. Ne pivotez pas vers @playwright/test sauf si l'utilisateur demande explicitement des fichiers de test.

Vérification des prérequis (obligatoire)

Avant de proposer des commandes, vérifiez que npx est disponible (le wrapper en dépend) :

command -v npx >/dev/null 2>&1

S'il n'est pas disponible, arrêtez-vous et demandez à l'utilisateur d'installer Node.js/npm (qui fournit npx). Fournissez ces étapes textuellement :

# Vérifiez que Node/npm sont installés
node --version
npm --version

# S'ils manquent, installez Node.js/npm, puis :
npm install -g @playwright/cli@latest
playwright-cli --help

Une fois que npx est présent, procédez avec le script wrapper. Une installation globale de playwright-cli est optionnelle.

Chemin de la compétence (défini une fois)

export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh"

Les compétences limitées à l'utilisateur s'installent sous $CODEX_HOME/skills (par défaut : ~/.codex/skills).

Démarrage rapide

Utilisez le script wrapper :

"$PWCLI" open https://playwright.dev --headed
"$PWCLI" snapshot
"$PWCLI" click e15
"$PWCLI" type "Playwright"
"$PWCLI" press Enter
"$PWCLI" screenshot

Si l'utilisateur préfère une installation globale, c'est aussi valide :

npm install -g @playwright/cli@latest
playwright-cli --help

Flux de travail principal

  1. Ouvrez la page.
  2. Snapshottez pour obtenir des références d'éléments stables.
  3. Interagissez en utilisant les références du dernier snapshot.
  4. Re-snapshottez après une navigation ou des changements DOM importants.
  5. Capturez les artefacts (capture d'écran, pdf, traces) quand c'est utile.

Boucle minimale :

"$PWCLI" open https://example.com
"$PWCLI" snapshot
"$PWCLI" click e3
"$PWCLI" snapshot

Quand re-snapshotter

Re-snapshottez après :

  • une navigation
  • un clic sur des éléments qui changent l'interface utilisateur de façon substantielle
  • l'ouverture/fermeture de modales ou de menus
  • des changements d'onglet

Les références peuvent devenir obsolètes. Quand une commande échoue en raison d'une référence manquante, snapshottez à nouveau.

Motifs recommandés

Remplissage de formulaire et soumission

"$PWCLI" open https://example.com/form
"$PWCLI" snapshot
"$PWCLI" fill e1 "user@example.com"
"$PWCLI" fill e2 "password123"
"$PWCLI" click e3
"$PWCLI" snapshot

Déboguer un flux UI avec des traces

"$PWCLI" open https://example.com --headed
"$PWCLI" tracing-start
# ...interactions...
"$PWCLI" tracing-stop

Travail multi-onglets

"$PWCLI" tab-new https://example.com
"$PWCLI" tab-list
"$PWCLI" tab-select 0
"$PWCLI" snapshot

Script wrapper

Le script wrapper utilise npx --package @playwright/cli playwright-cli pour que le CLI fonctionne sans installation globale :

"$PWCLI" --help

Préférez le wrapper sauf si le dépôt standardise déjà sur une installation globale.

Références

Ouvrez uniquement ce dont vous avez besoin :

  • Référence des commandes CLI : references/cli.md
  • Flux de travail pratiques et dépannage : references/workflows.md

Garde-fous

  • Snapshottez toujours avant de référencer des ids d'éléments comme e12.
  • Re-snapshottez quand les références semblent obsolètes.
  • Préférez les commandes explicites plutôt que eval et run-code sauf si nécessaire.
  • Quand vous n'avez pas un snapshot récent, utilisez des références de substitution comme eX et expliquez pourquoi ; ne contournez pas les références avec run-code.
  • Utilisez --headed quand une vérification visuelle sera utile.
  • Lors de la capture d'artefacts dans ce dépôt, utilisez output/playwright/ et évitez d'introduire de nouveaux dossiers d'artefacts de niveau supérieur.
  • Privilégiez les commandes et flux de travail CLI, pas les specs de test Playwright.