Vos tests e2e ne cassent plus.

Enregistrez le parcours. L'extension liste les éléments sans data-testid stable. Le dev sait exactement quoi ajouter, vos tests Playwright et Cypress survivent au prochain refactor.

Conçu pour les équipes Playwright et Cypress. Bientôt sur le Chrome Web Store.

app.votre-societe.com/settings
Paramètres
Informations personnelles
Marie Lambert <input> · Solid 95 · has name="fullname" All OK - skipped
marie@acme.io <input type="email"> · Usable 60 · has placeholder
REC Paused
Login flow
Steps 0 1 2
Pages1
Skip solid elements
Stop
Voir le rapport →

Vos tests e2e cassent à chaque sprint. Pas par hasard.

Pas parce que Playwright ou Cypress ont changé. Parce que vos sélecteurs n'ont jamais été stables. Et préparer le terrain coûte cher. Aujourd'hui, vous avez deux mauvaises options.

Vivre avec des sélecteurs fragiles

  • Sprint NTest Playwright vert avec un nth-child ou un sélecteur CSS - vous mergez
  • Sprint N+3Un dev refactor le composant. Le test casse au prochain run de CI
  • +1hRéouvrir DevTools, fabriquer un nouveau sélecteur tout aussi fragile, re-merger
  • ×12Multiplié par tous les tests cassés à chaque release
  • Lundis matin perdus à fixer ce qui marchait vendredi. La suite e2e devient la corvée que personne ne veut maintenir.

Préparer chaque parcours à la main

  • 1hPour chaque parcours auto, ouvrir DevTools sur chaque élément cliqué
  • 30′Repérer les éléments sans data-testid, proposer un nom propre pour chacun
  • 1jDécouper en plusieurs tickets - le code est éparpillé sur 5 composants, donc 5 devs concernés
  • +joursSuivre 5 PRs, relancer ceux qui traînent
  • 1 à 2 jours par parcours, juste pour préparer le terrain. Avant la première ligne de test.

Avec TestID Hunter, vous enregistrez le parcours. L'extension liste chaque élément Weak avec un data-testid suggéré, scopé au composant. Le ticket est prêt en 5 minutes - le dev voit exactement quoi ajouter et où.
Tests e2e robustes by default. Plus d'allers-retours, plus de lundis cramés, plus de sélecteurs qui meurent au prochain refactor.

Trois étapes. C'est tout.

Pas de setup. Pas de SaaS. Pas de backend. Installez l'extension, commencez à enregistrer.

1

Enregistrer

Inscription
marie@acme.io
REC
Steps5
Pages2
Stop

Cliquez dans votre app comme un utilisateur. Chaque clic, input ou navigation est capturé avec un screenshot, un rectangle et un snapshot DOM.

2

Analyser

Page 1 · 4 éléments
1 <input> email-input-text Solid
2 <button> continuer-button Usable
3 <div> card-action-link Weak
4 <span> close-icon-span Weak

Chaque élément est auto-scoré. Concentrez-vous uniquement sur les Weak - le reste est déjà sûr.

3

Exporter

testid-ticket.zip
 testid-ticket-signup.zip
┣━━  report.md
┗━━  screenshots/
    ┣━━ element-01-email-input.png
    ┣━━ element-02-continuer-btn.png
    ┣━━ viewport-03-card-link.jpg
    ┗━━ page-01.png

Téléchargez un ZIP avec screenshots annotés et ticket Markdown prêt-à-coller. Ou copiez-collez direct dans Jira / GitHub / Linear / Redmine.

Le vrai sujet, c'est le scoring des sélecteurs.

Le job d'un QA, ce n'est pas de trouver un sélecteur. C'est d'en trouver un qui ne casse pas au prochain sprint. On fait ça pour vous.

Solid score 90-100

Rock solid pour l'automatisation

  • data-testid présent
  • id stable
  • aria-label disponible

Rien à faire - le sélecteur ne cassera pas. Et oui, aria-label est traité au même niveau que data-testid - vous gagnez sur la testabilité et sur l'accessibilité.

Usable score 50-89

Marche aujourd'hui, fragile demain

  • name, placeholder
  • role + texte
  • attribut title

Marche. Casse si le copywriting ou la structure change.

Weak score 10-49

Cassera au prochain refactor

  • Chemin CSS / nth-child
  • id UUID auto-généré
  • Aucun attribut stable

On suggère un data-testid et on l'écrit dans le ticket.

Feedback en live

Voyez le verdict avant de cliquer.

Un badge de hover en direct montre le rang, le score et la raison pour chaque élément quand vous bougez la souris - vous savez ce qui mérite votre attention avant d'interagir.

Le cadre devient vert sur les Solid, bleu sur les Usable, rouge sur les Weak. Un toggle permet d'ignorer les Solid entièrement.

Tous les devices
<input type="text"> · Weak 10 · no stable attribute found

Le ticket est écrit pour vous.

Markdown, ZIP, clipboard - choisissez le format qui colle à votre ticketing.

Extrait Markdown

# Parcours signup utilisateur

>  Screenshots - utilisez les boutons Copy image dans l'extension

### 3. `admin-delete-btn`

- **Rank**: Weak - no stable attribute found
- **Tag**: `<button>`
- **Texte**: "Supprimer l'utilisateur"
- **Sélecteur CSS**: `.admin-row button`
- **XPath**: //*[@id="root"]/div/table/tbody/tr[3]/td[4]/button

**À ajouter dans le HTML :**
```html
data-testid="admin-delete-btn"
```

> Alternative : un aria-label="Supprimer l'utilisateur" serait aussi Solid - choisissez ce qui colle le mieux à votre équipe.

Structure de l'archive ZIP

testid-ticket-signup.zip
├── report.md
└── screenshots/
    ├── element-01-email-input.png
    ├── element-02-submit-button.png
    ├── viewport-03-admin-delete-btn.jpg
    └── page-01.png

Copy image pour paste instantané

Chaque screenshot a un bouton Copy. Cliquez, collez dans Jira / GitHub / Linear - l'outil upload l'image sur son propre CDN automatiquement. Zéro friction, zéro hébergement de votre côté.

S'intègre avec votre stack.

Les formats de sortie sont universels. Aucun nouvel outil à apprendre. Aucune intégration API à maintenir.

Jira
Linear
GitHub Issues
GitLab
Redmine
Confluence
ServiceNow
Azure DevOps

Frameworks détectés

Les noms de composants React, Vue, Angular, Svelte sont inclus dans le ticket.

React Vue Angular Svelte

Frameworks de test

Les data-testid suggérés marchent directement avec Playwright, Cypress, TestCafe.

Playwright Cypress TestCafe

Ce qu'on capture. Ce qui reste local. Ce qu'on ne touche jamais.

Le travail QA se fait sur des apps internes avec des données sensibles. Voici exactement où va chaque octet.

Reste dans votre navigateur

  • Enregistrements : stockés dans chrome.storage.local, jamais envoyés ailleurs
  • Screenshots : écrits sur disque seulement quand vous cliquez Download ZIP
  • Snapshots DOM, scoring, data-testid suggérés : tout est calculé en local

Sort uniquement sur clic

  • Ticket Markdown : seulement quand vous cliquez Copier ou Télécharger
  • Upload d'image : seulement quand vous utilisez Copy image vers votre ticketing
  • La destination, c'est votre Jira / GitHub / Linear, pas nous

Jamais collecté

  • Pas de télémétrie, pas d'analytics, pas de remontée d'erreurs
  • Pas de compte, pas de login, pas de sync cloud
  • Aucun appel réseau externe sans action utilisateur explicite

L'extension ne demande que les permissions strictement nécessaires pour enregistrer les interactions sur l'onglet que vous choisissez. Pas d'activité en arrière-plan, pas de permission all-sites.

Parlez à l'équipe qui le construit.

Démo, POC, ou juste des questions - réponse sous 24h en semaine.

On n'utilisera votre email que pour vous répondre. Pas de newsletter, pas d'automation, pas de dark patterns.