Playwright has really good codegen tool,
but you are stuck with Puppeteer. Then this library is what you need as it
allows to take code generated by Playwright's codegen
and use it in Puppeteer
with minimal changes.
This is very early version that might be improved in the future. Here some ideas:
-
Add tests
-
Add custom jest matchers.
codegen
generates matchers liketoContainText
ortoBeVisible
that are not supported by this library yet -
Allow to specify test id attribute (in current implementation
data-hook
is used) -
Support more functions and cases. Only small subset of
codegen
generated code is supported now.
npm:
npm install -D lesouffleur
yarn:
yarn add -D lesouffleur
import { LeSouffleur } from 'lesouffleur';
const driver = new LeSouffleur(page); // <-- Puppeteer page here
await driver.getByTestId('some-test-id').click();
await driver.getByRole('button', { name: 'Increment' }).click();
await driver.getByText('Approve').click();
Since we are working on abstraction of Puppeteer here (no real Puppeteer types) make sure to write tests and, please, test with real product as well.
You can use dev version by linking it. E.g. using yarn you can do something like this:
yarn add lesouffleur@portal:./../../../lesouffleur
The goal is to make Puppeteer act like Playwright as much as possible thus try to mimic Playwright behaviour, e.g. read how actions work here: https://playwright.dev/docs/actionability
As both Playwright and Puppeteer is theatre related I simply chose name related to theatre as well. See this Wikipedia article: Prompter