QA The Other WayAssurance qualité à l'ère de l'automatisation par IA. QA The Other Way.
QA pratique

Vérifiez valeur et libellé de l'option.

Précisez le champ de sélection quand nom visible et valeur envoyée diffèrent.

5 min de lectureQA The Other Way
Option sélectionnée avec libellé et valeur séparés.
Illustration éditoriale originale.
Vidéo d'illustration pour cet article. Texte en anglais à l'écran ; sélectionnez les sous-titres pour cette langue.

Édition traduite. Les identifiants techniques restent sous leur forme originale.

Précisez le champ de sélection quand nom visible et valeur envoyée diffèrent.
Exemple local inventé, pas une interface client ou fournisseur.

Un select affiche Weekly avec weekly_demo comme valeur. Le test traite les deux comme la même chaîne. Le rapport perd la différence entre ce que lit une personne et ce que contient le contrôle. Les deux peuvent compter.

Le guide des actions permet value ou label. L'API Locator dit qu'une chaîne peut correspondre aux deux ; un objet nomme le champ. Utilisez la forme explicite si la distinction affecte le cas.

Nommer le champ

Notre select natif inventé a le label Delivery cadence et deux options de valeurs différentes. Aucun abonnement, commande ou livraison. Nous sélectionnons la valeur hebdomadaire et vérifions séparément le texte.

const cadence = page.getByLabel('Delivery cadence');
await cadence.selectOption({ value: 'weekly_demo' });
await expect(cadence).toHaveValue('weekly_demo');
await expect(cadence.locator('option:checked')).toHaveText('Weekly');

Runner et expect importé sont requis. Ce code vise un select natif, pas un popup similaire. option:checked inspecte l'option sélectionnée dedans. Ce cas simple attend une seule option.

Un second cas choisit Monthly par label et vérifie monthly_demo retourné, avec input et change. Cela confirme la mécanique locale, pas toute sauvegarde serveur d'application.

Vérifier les libellés renommés

Une localisation peut changer le nom sans changer la valeur. Choisir par valeur marche même avec le mauvais libellé. Gardez son assertion si le texte est exigé. Choisir seulement par label ne prouve pas le bon identifiant.

Utilisez une valeur convenue plutôt qu'un index pour l'identité. L'index dépend de l'ordre. Si la première recommandation est requise, vérifiez ordre et identité explicitement.

selectOption attend la présence des options et déclenche input et change. Cela ne prouve pas l'acceptation par l'application. Vérifiez état visible et preuves serveur autorisées. Un délai aveugle ne remplace pas ces preuves.

Garder type et nombre

Un combobox personnalisé peut exiger une autre interaction. Examinez implémentation et comportement accessible avant de copier l'API. Un aspect semblable ne prouve pas un contrat commun.

La sélection multiple change le résultat. Utilisez liste de valeurs et assertions adaptées, pas une assertion de texte unique étendue sans revue. Ici, une option seulement.

Notez type, champ, valeur, libellé et persistance. AnyTest décrit exploration et revue humaine ; aucune implémentation select précise n'est revendiquée. Séparez identifiant et nom.

Même si les deux coïncident aujourd'hui, gardez le champ explicite quand le contrat le demande. Cela rend un renommage vérifiable sans déplacer silencieusement l'identité.

Questions courantes

Une chaîne sélectionne-t-elle uniquement une valeur ?

Non. Elle correspond aux valeurs et libellés ; utilisez un objet explicite si nécessaire.

selectOption gère-t-il chaque menu personnalisé ?

Non. Il cible select natif ; examinez les autres contrôles séparément.

Sources