Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
@puppeteer/browsers
Advanced tools
@puppeteer/browsers is a package that provides tools for managing browser binaries for Puppeteer. It allows you to download, install, and manage different versions of browsers like Chrome and Firefox, which can be used with Puppeteer for web scraping, automated testing, and other browser automation tasks.
Download a specific browser version
This feature allows you to download a specific version of a browser. In this example, it downloads Chrome version 91.0.4472.124.
const { downloadBrowser } = require('@puppeteer/browsers');
(async () => {
await downloadBrowser('chrome', '91.0.4472.124');
})();
List available browser versions
This feature lists all available versions of a specified browser. In this example, it lists all available versions of Chrome.
const { listBrowserVersions } = require('@puppeteer/browsers');
(async () => {
const versions = await listBrowserVersions('chrome');
console.log(versions);
})();
Install a browser
This feature installs a specified version of a browser. In this example, it installs Firefox version 89.0.
const { installBrowser } = require('@puppeteer/browsers');
(async () => {
await installBrowser('firefox', '89.0');
})();
Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. While @puppeteer/browsers focuses on managing browser binaries, Puppeteer itself is used for browser automation tasks such as web scraping and automated testing.
Playwright is a Node library to automate Chromium, Firefox, and WebKit with a single API. It provides similar functionalities to Puppeteer but supports more browsers. Playwright also includes tools for managing browser binaries, making it a comprehensive alternative to @puppeteer/browsers.
Selenium WebDriver is a tool for automating web application testing, and it supports multiple browsers. Selenium WebDriver can manage browser binaries through WebDriverManager, which provides similar functionalities to @puppeteer/browsers.
Manage and launch browsers/drivers from a CLI or programmatically.
Use npx
to run the CLI:
# This will install and run the @puppeteer/browsers package.
# If it is already installed in the current directory, the installed
# version will be used.
npx @puppeteer/browsers --help
Built-in per-command help
will provide all documentation you need to use the CLI.
npx @puppeteer/browsers --help # help for all commands
npx @puppeteer/browsers install --help # help for the install command
npx @puppeteer/browsers launch --help # help for the launch command
npx @puppeteer/browsers clear --help # help for the clear command
npx @puppeteer/browsers list --help # help for the list command
You can specify the version of the @puppeteer/browsers
when using
npx
:
# Always install and use the latest version from the registry.
npx @puppeteer/browsers@latest --help
# Always use a specifc version.
npx @puppeteer/browsers@2.4.1 --help
# Always install the latest version and automatically confirm the installation.
npx --yes @puppeteer/browsers@latest --help
To clear all installed browsers, use the clear
command:
npx @puppeteer/browsers clear
To list all installed browsers, use the list
command:
npx @puppeteer/browsers list
Some example to give an idea of what the CLI looks like (use the --help
command for more examples):
# Download the latest available Chrome for Testing binary corresponding to the Stable channel.
npx @puppeteer/browsers install chrome@stable
# Download a specific Chrome for Testing version.
npx @puppeteer/browsers install chrome@116.0.5793.0
# Download the latest Chrome for Testing version for the given milestone.
npx @puppeteer/browsers install chrome@117
# Download the latest available ChromeDriver version corresponding to the Canary channel.
npx @puppeteer/browsers install chromedriver@canary
# Download a specific ChromeDriver version.
npx @puppeteer/browsers install chromedriver@116.0.5793.0
# On Ubuntu/Debian and only for Chrome, install the browser and required system dependencies.
# If the browser version has already been installed, the command
# will still attempt to install system dependencies.
# Requires root privileges.
npx puppeteer browsers install chrome --install-deps
The programmatic API allows installing and launching browsers from your code. See the test
folder for examples on how to use the install
, canInstall
, launch
, computeExecutablePath
, computeSystemExecutablePath
and other methods.
FAQs
Download and launch browsers
The npm package @puppeteer/browsers receives a total of 2,408,599 weekly downloads. As such, @puppeteer/browsers popularity was classified as popular.
We found that @puppeteer/browsers demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
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.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.