Bibliothèque de tests Puppeteer
Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →
pptr-testing-library est un adaptateur léger permettant d'utiliser
DOM Testing Library avec puppeteer.
- npm
- Yarn
npm install --save-dev puppeteer pptr-testing-library
yarn add --dev puppeteer pptr-testing-library
Utilisation
const puppeteer = require('puppeteer')
const {getDocument, queries, waitFor} = require('pptr-testing-library')
const {getByTestId, getByLabelText} = queries
const browser = await puppeteer.launch()
const page = await browser.newPage()
// Grab ElementHandle for document
const $document = await getDocument(page)
// Your favorite query methods are available
const $form = await getByTestId($document, 'my-form')
// returned elements are Puppeteer ElementHandles too!
const $email = await getByLabelText($form, 'Email')
// interact with puppeteer like usual
await $email.type('pptr@example.com')
// waiting works too!
await waitFor(() => getByText('Loading...'))
Trop éloigné de l'esprit Puppeteer ? Vous pouvez attacher toutes les méthodes
de DOM Testing Library directement au ElementHandle de Puppeteer !
const puppeteer = require('puppeteer')
require('pptr-testing-library/extend')
const browser = await puppeteer.launch()
const page = await browser.newPage()
// getDocument is added to prototype of Page
const $document = await page.getDocument()
// query methods are added directly to prototype of ElementHandle
const $form = await $document.getByTestId('my-form')
// destructuring works if you explicitly call getQueriesForElement
const {getByLabelText} = $form.getQueriesForElement()
// ...
const $email = await getByLabelText('Email')
API
Méthodes spécifiques, non incluses dans DOM Testing Library.
getDocument(page: puppeteer.Page): ElementHandle- obtenir un ElementHandle pour le document
Méthodes transférées
DOM Testing Library est injectée dans la page contrôlée par Puppeteer à chaque
requête, donc tous les résultats seront asynchrones. Il reste recommandé d'utiliser
les méthodes natives de Puppeteer pour les interactions plutôt que fireEvent.
Limitations connues
La méthode
waitForElementn'est pas exposée. Puppeteer possède ses propres utilitaires d'attente qui entrent en conflit avec l'approche deDOM Testing Library. Voir l'issue sur GitHub.La méthode
fireEventn'est pas exposée, utilisez plutôt les méthodes natives de Puppeteer.Les extensions d'assertion
expectne sont pas disponibles.