Socket
Socket
Sign inDemoInstall

puppeteer-core

Package Overview
Dependencies
90
Maintainers
2
Versions
209
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    puppeteer-core

A high-level API to control headless Chrome over the DevTools Protocol


Version published
Weekly downloads
7.1M
decreased by-4.12%
Maintainers
2
Install size
26.8 MB
Created
Weekly downloads
 

Package description

What is puppeteer-core?

The puppeteer-core package is a version of Puppeteer, a Node library which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It is intended to be a lightweight version that can be used when you want to bring your own browser. It does not download any browsers by default, unlike the full puppeteer package.

What are puppeteer-core's main functionalities?

Page Automation

Automate and control a web page, including navigation, screenshot taking, and DOM manipulation.

const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({executablePath: '/path/to/your/Chrome'});
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});
  await browser.close();
})();

Form Submission

Automate form submissions by typing into fields and clicking buttons.

const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({executablePath: '/path/to/your/Chrome'});
  const page = await browser.newPage();
  await page.goto('https://example.com/login');
  await page.type('#username', 'myUsername');
  await page.type('#password', 'myPassword');
  await page.click('#submit');
  await page.waitForNavigation();
  await browser.close();
})();

Web Scraping

Extract data from web pages by running JavaScript in the context of the page.

const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({executablePath: '/path/to/your/Chrome'});
  const page = await browser.newPage();
  await page.goto('https://example.com');
  const data = await page.evaluate(() => {
    return document.querySelector('h1').textContent;
  });
  console.log(data);
  await browser.close();
})();

PDF Generation

Generate PDFs of web pages for offline viewing or archiving.

const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({executablePath: '/path/to/your/Chrome'});
  const page = await browser.newPage();
  await page.goto('https://example.com', {waitUntil: 'networkidle0'});
  await page.pdf({path: 'example.pdf', format: 'A4'});
  await browser.close();
})();

Automated Testing

Perform automated testing on web applications, including end-to-end tests, performance testing, and more.

const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.launch({executablePath: '/path/to/your/Chrome', headless: false});
  const page = await browser.newPage();
  await page.goto('https://example.com');
  // Perform various tests, like checking if a button exists
  const buttonExists = await page.$('button') !== null;
  console.assert(buttonExists, 'Button should exist on the page');
  await browser.close();
})();

Other packages similar to puppeteer-core

Readme

Source

Puppeteer

build npm puppeteer package

Puppeteer is a Node.js library which provides a high-level API to control Chrome/Chromium over the DevTools Protocol. Puppeteer runs in headless mode by default, but can be configured to run in full ("headful") Chrome/Chromium.

Get started | API | FAQ | Contributing | Troubleshooting

Example

import puppeteer from 'puppeteer';

(async () => {
  // Launch the browser and open a new blank page
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // Navigate the page to a URL
  await page.goto('https://developer.chrome.com/');

  // Set screen size
  await page.setViewport({width: 1080, height: 1024});

  // Type into search box
  await page.type('.devsite-search-field', 'automate beyond recorder');

  // Wait and click on first result
  const searchResultSelector = '.devsite-result-item-link';
  await page.waitForSelector(searchResultSelector);
  await page.click(searchResultSelector);

  // Locate the full title with a unique string
  const textSelector = await page.waitForSelector(
    'text/Customize and automate'
  );
  const fullTitle = await textSelector?.evaluate(el => el.textContent);

  // Print the full title
  console.log('The title of this blog post is "%s".', fullTitle);

  await browser.close();
})();

Keywords

FAQs

Last updated on 15 Apr 2024

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc