Socket
Book a DemoInstallSign in
Socket

@pptr/recorder

Package Overview
Dependencies
Maintainers
4
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pptr/recorder

Interactively record puppeteer scripts

latest
Source
npmnpm
Version
0.0.3
Version published
Weekly downloads
0
-100%
Maintainers
4
Weekly downloads
 
Created
Source

Puppeteer Recorder

: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');
});

Architecture

This project consists of three parts:

  • Recorder: Cli script that starts a Chromium instance to record user interactions
  • Runner: Npm package to abstract away the puppeteer details when running recorded interactions
  • Injected Script: The recorder will automatically inject a script into the browser to collect information about interactions and to relay them to the recorder

Setup

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.

Debugging

Use the runner with DEBUG=1 to execute the script line by line.

Known limitations

There are a number of known limitations:

  • It's currently not possible to record interactions inside of shadow doms
  • It only records clicks, changes to text fields and form submits for now

FAQs

Package last updated on 17 Jul 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts