:warning: This is still work in progress
Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default, but can be configured to run full (non-headless) Chrome or Chromium.
This repository allows to record puppeteer scripts by interacting with the browser:
npx @pptr/recorder [url]
will start a new browser in which every interaction with the page will be recorded and printed to the console as a script runnable via puppeteer.
const {open, click, type, submit} = require('@pptr/recorder');
open('https://www.google.com/?hl=en', async () => {
await click('ariaName/Search');
await type('ariaName/Search', 'calculator');
await click('ariaName/Google Search');
await click('ariaName/1');
await click('ariaName/plus');
await click('ariaName/2');
await click('ariaName/equals');
});
This project consists of three parts:
When checking out the repository locally, you can use
npm run build
to compile the injected script, the recorder and the runner.
By running npm link, the package will become available to be run via npx.
When running the recorded scripts, make sure the package is available in their node_modules folder by using npm link @pptr/recorder.
Use the runner with DEBUG=1 to execute the script line by line.
There are a number of known limitations: