Locateurs <Version>2.1.0</Version>
Un locateur est une représentation d’un élément ou d’un certain nombre d’éléments. Chaque locateur est défini par une chaîne appelée sélecteur. Vitest abstrait ce sélecteur en fournissant des méthodes pratiques qui génèrent ces sélecteurs en arrière-plan.
L’API de locateur utilise un fork des locateurs de Playwright appelé Ivya. Cependant, Vitest fournit cette API à chaque fournisseur.
getByRole
- Type :
(role: ARIARole | string, options?: LocatorByRoleOptions) => Locator
Crée une manière de localiser un élément par son rôle ARIA, attributs ARIA et nom accessible.
Considérez la structure DOM suivante.
Vous pouvez localiser chaque élément par son rôle implicite :
Options
-
exact: boolean
Indique si le
name
est apparié exactement : sensible à la casse et chaîne entière. Désactivé par défaut. Cette option est ignorée siname
est une expression régulière. Notez que la correspondance exacte enlève toujours les espaces. -
checked: boolean
Les éléments cochés (définis par
aria-checked
ou<input type="checkbox"/>
) doivent-ils être inclus ou non. Par défaut, le filtre n’est pas appliqué.Consultez
aria-checked
pour plus d’informations. -
disabled: boolean
Les éléments désactivés doivent-ils être inclus ou non. Par défaut, le filtre n’est pas appliqué. Notez qu’à la différence des autres attributs, l’état
disable
est hérité.Consultez
aria-disabled
pour plus d’informations. -
expanded: boolean
Les éléments étendus doivent-ils être inclus ou non. Par défaut, le filtre n’est pas appliqué.
Consultez
aria-expanded
pour plus d’informations. -
includeHidden: boolean
Les éléments qui sont normalement exclus de l’arbre d’accessibilité doivent-ils être interrogés. Par défaut, seuls les éléments non cachés sont appariés par le sélecteur de rôle.
Notez que les rôles
none
etpresentation
sont toujours inclus. -
level: number
Un attribut numérique qui est généralement présent pour les rôles
heading
,listitem
,row
,treeitem
, avec des valeurs par défaut pour les éléments<h1>-<h6>
. Par défaut, le filtre n’est pas appliqué.Consultez
aria-level
pour plus d’informations. -
name: string | RegExp
Un nom accessible. Par défaut, la correspondance est insensible à la casse et recherche une sous-chaîne. Utilisez l’option
exact
pour contrôler ce comportement. -
pressed: boolean
Les éléments pressés doivent-ils être inclus ou non. Par défaut, le filtre n’est pas appliqué.
Consultez
aria-pressed
pour plus d’informations. -
selected: boolean
Les éléments sélectionnés doivent-ils être inclus ou non. Par défaut, le filtre n’est pas appliqué.
Consultez
aria-selected
pour plus d’informations.
Voir aussi
getByAltText
- Type :
(text: string | RegExp, options?: LocatorOptions) => Locator
Crée un locateur capable de trouver un élément avec un attribut alt
qui correspond au texte. Contrairement à l’implémentation de testing-library, Vitest fera correspondre tout élément ayant un attribut alt
correspondant.
Options
-
exact: boolean
Indique si le
text
est apparié exactement : sensible à la casse et chaîne entière. Désactivé par défaut. Cette option est ignorée sitext
est une expression régulière. Notez que la correspondance exacte enlève toujours les espaces.
Voir aussi
getByLabelText
- Type :
(text: string | RegExp, options?: LocatorOptions) => Locator
Crée un locateur capable de trouver un élément qui a une étiquette associée.
Le locateur page.getByLabelText('Nom d'utilisateur')
trouvera chaque entrée dans l’exemple ci-dessous :
Options
-
exact: boolean
Indique si le
text
est apparié exactement : sensible à la casse et chaîne entière. Désactivé par défaut. Cette option est ignorée sitext
est une expression régulière. Notez que la correspondance exacte enlève toujours les espaces.
Voir aussi
getByPlaceholder
- Type :
(text: string | RegExp, options?: LocatorOptions) => Locator
Crée un locateur capable de trouver un élément qui a l’attribut placeholder
spécifié. Vitest fera correspondre tout élément qui a un attribut placeholder
correspondant, pas seulement input
.
Options
-
exact: boolean
Indique si le
text
est apparié exactement : sensible à la casse et chaîne entière. Désactivé par défaut. Cette option est ignorée sitext
est une expression régulière. Notez que la correspondance exacte enlève toujours les espaces.
Voir aussi
getByText
- Type :
(text: string | RegExp, options?: LocatorOptions) => Locator
Crée un locateur capable de trouver un élément contenant le texte spécifié. Le texte sera comparé à nodeValue
du TextNode ou à la valeur d’un input si le type est button
ou reset
. La correspondance par texte normalise toujours les espaces, même avec une correspondance exacte. Par exemple, cela transforme plusieurs espaces en un, transforme les sauts de ligne en espaces et ignore les espaces de tête et de fin.
Options
-
exact: boolean
Indique si le
text
est apparié exactement : sensible à la casse et chaîne entière. Désactivé par défaut. Cette option est ignorée sitext
est une expression régulière. Notez que la correspondance exacte enlève toujours les espaces.
Voir aussi
getByTitle
- Type :
(text: string | RegExp, options?: LocatorOptions) => Locator
Crée un locateur capable de trouver un élément qui a l’attribut title
spécifié. Contrairement à getByTitle
de testing-library, Vitest ne peut pas trouver d’éléments title
dans un SVG.
Options
-
exact: boolean
Indique si le
text
est apparié exactement : sensible à la casse et chaîne entière. Désactivé par défaut. Cette option est ignorée sitext
est une expression régulière. Notez que la correspondance exacte enlève toujours les espaces.
Voir aussi
getByTestId
- Type :
(text: string | RegExp) => Locator
Crée un locateur capable de trouver un élément qui correspond à l’attribut d’identifiant de test spécifié. Vous pouvez configurer le nom de l’attribut avec browser.locators.testIdAttribute
.
Options
-
exact: boolean
Indique si le
text
est apparié exactement : sensible à la casse et chaîne entière. Désactivé par défaut. Cette option est ignorée sitext
est une expression régulière. Notez que la correspondance exacte enlève toujours les espaces.
Voir aussi
Méthodes
click
- Type :
(options?: UserEventClickOptions) => Promise<void>
Cliquez sur un élément. Vous pouvez utiliser les options pour définir la position du curseur.
dblClick
- Type :
(options?: UserEventClickOptions) => Promise<void>
Déclenche un événement de double clic sur un élément. Vous pouvez utiliser les options pour définir la position du curseur.
tripleClick
- Type :
(options?: UserEventClickOptions) => Promise<void>
Déclenche un événement de triple clic sur un élément. Comme il n’y a pas de tripleclick
dans l’API du navigateur, cette méthode déclenchera trois événements de clic consécutifs.
clear
- Type :
() => Promise<void>
Efface le contenu de l’élément d’entrée.
hover
- Type :
(options?: UserEventHoverOptions) => Promise<void>
Déplace la position du curseur vers l’élément sélectionné.
unhover
- Type :
(options?: UserEventHoverOptions) => Promise<void>
Cela fonctionne de la même manière que locator.hover
, mais déplace le curseur vers l’élément document.body
.
fill
- Type :
(text: string, options?: UserEventFillOptions) => Promise<void>
Définit la valeur de l’élément input
, textarea
ou conteneditable
actuel.
dropTo
- Type :
(target: Locator, options?: UserEventDragAndDropOptions) => Promise<void>
Fait glisser l’élément actuel vers l’emplacement cible.
selectOptions
- Type :
(values: HTMLElement | HTMLElement[] | string | string[], options?: UserEventSelectOptions) => Promise<void>
Choisissez une ou plusieurs valeurs d’un élément <select>
.
screenshot
- Type :
(options?: LocatorScreenshotOptions) => Promise<string | { path: string; base64: string }>
Crée une capture d’écran de l’élément correspondant au sélecteur du locateur.
Vous pouvez spécifier l’emplacement de sauvegarde de la capture d’écran en utilisant l’option path
, qui est relative au fichier de test actuel. Si l’option path
n’est pas définie, Vitest utilisera par défaut browser.screenshotDirectory
(__screenshot__
par défaut), ainsi que les noms du fichier et du test pour déterminer le chemin d’accès à la capture d’écran.
Si vous avez également besoin du contenu de la capture d’écran, vous pouvez spécifier base64: true
pour le retourner avec le chemin d’accès où la capture d’écran est enregistrée.
query
- Type :
() => Element | null
Cette méthode retourne un seul élément correspondant au sélecteur du locateur ou null
si aucun élément n’est trouvé.
Si plusieurs éléments correspondent au sélecteur, cette méthode générera une erreur. Utilisez .elements()
lorsque vous avez besoin de tous les éléments DOM correspondants ou .all()
si vous avez besoin d’un tableau de locateurs correspondants au sélecteur.
Considérez la structure DOM suivante :
Ces locateurs ne généreront pas d’erreur :
Ces locateurs généreront une erreur :
element
- Type :
() => Element
Cette méthode retourne un seul élément correspondant au sélecteur du locateur.
Si aucun élément ne correspond au sélecteur, une erreur est générée. Envisagez d’utiliser .query()
lorsque vous devez juste vérifier si l’élément existe.
Si plusieurs éléments correspondent au sélecteur, une erreur est générée. Utilisez .elements()
lorsque vous avez besoin de tous les éléments DOM correspondants ou .all()
si vous avez besoin d’un tableau de locateurs correspondants au sélecteur.
Considérez la structure DOM suivante :
Ces locateurs ne généreront pas d’erreur :
Ces locateurs généreront une erreur :
elements
- Type :
() => Element[]
Cette méthode retourne un tableau d’éléments correspondant au sélecteur du locateur.
Cette fonction ne déclenche jamais une erreur. S’il n’y a pas d’éléments correspondant au sélecteur, cette méthode renverra un tableau vide.
Considérez la structure DOM suivante :
Ces locateurs réussiront toujours :
all
- Type :
() => Locator[]
Cette méthode retourne un tableau de nouveaux locateurs qui correspondent au sélecteur.
Cette méthode appelle en interne .elements
et enveloppe chaque élément en utilisant page.elementLocator
.