Skip to content

Actions

Actions regroupe les interactions prêtes à l'emploi appliquées à un composant et à l'une de ses clés d'élément.

En pratique, cette namespace évite d'écrire les appels Playwright bas niveau partout dans les tests et donne un vocabulaire plus homogène à la suite.

Exemple simple

ts
import { Actions, 
createComponent
,
createWebsite
, type Website } from "@duplojs/playwright";
import
test
from "playwright/test";
interface TestFixtures {
website
: Website;
} const
testClient
=
test
.
extend
<TestFixtures>({
async
website
({
page
,
context
},
use
) {
const
website
=
createWebsite
({
playwrightPage
:
page
,
playwrightBrowserContext
:
context
,
envConfig
: {
baseUrl
: "https://example.com",
}, }); await
use
(
website
);
}, }); const
searchForm
=
createComponent
(
"searchForm", {
getMainElement
({
body
}) {
return
body
.
locator
("[data-search-form]");
},
getElements
({
mainElement
}) {
return {
query
:
mainElement
.
locator
("input"),
submit
:
mainElement
.
locator
("button[type='submit']"),
}; }, }, );
testClient
("actions example", async({
website
}) => {
const
component
= await
website
.
iWantToSee
(
searchForm
);
await Actions.
fill
(
component
, "query", "duplojs");
await Actions.
click
(
component
, "submit");
});

Ce qui se passe ici

  • le composant expose des éléments nommés
  • Actions.fill(...) et Actions.click(...) s'appuient sur ces clés d'élément
  • le test reste centré sur l'intention plutôt que sur les appels Playwright bruts

À quoi ça sert ?

Actions sert surtout à :

  • mutualiser les interactions fréquentes
  • garder un style d'écriture homogène
  • réutiliser les mêmes comportements sur plusieurs composants
  • éviter de disperser les appels locator dans les tests

click

ts
Actions.click(component, elementKey)

Clique sur un élément déclaré du composant.

forceClick

ts
Actions.forceClick(component, elementKey)

Force un clic avec click({ force: true }).

hover

ts
Actions.hover(component, elementKey)

Survole un élément déclaré du composant.

focus

ts
Actions.focus(component, elementKey)

Donne le focus à un élément déclaré du composant.

fill

ts
Actions.fill(component, elementKey, content)

Remplit un élément avec une valeur texte.

type

ts
Actions.type(component, elementKey, text, options?)

Tape du texte séquentiellement dans un élément.

clear

ts
Actions.clear(component, elementKey)

Vide la valeur actuelle d'un élément.

press

ts
Actions.press(component, elementKey, key)

Envoie une touche clavier à un élément.

check

ts
Actions.check(component, elementKey)

Coche un élément compatible.

uncheck

ts
Actions.uncheck(component, elementKey)

Décoche un élément compatible.

selectOption

ts
Actions.selectOption(component, elementKey, values)

Sélectionne une ou plusieurs options sur un élément.

dragTo

ts
Actions.dragTo(component, elementKey, target, options?)

Déplace un élément vers un locator cible.

extractContent

ts
Actions.extractContent(component, elementKey)

Retourne le contenu texte d'un élément.

withStep

ts
Actions.withStep(label).action(component, elementKey, ...args)

Retourne les mêmes actions, mais regroupées sous un test.step(...) personnalisé. L'appel utile est ensuite chaîné sur le wrapper retourné.

Voir aussi

  • Assertions - pour les vérifications prêtes à l'emploi sur les composants.
  • Component - pour définir les éléments sur lesquels les actions s'appliquent.
  • Component Interaction - pour créer des interactions personnalisées si les actions fournies ne suffisent pas.

Diffusé sous licence MIT.