Socket
Socket
Sign inDemoInstall

@copperjs/copper

Package Overview
Dependencies
13
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@copperjs/copper

A lightweight chromium grid


Version published
Weekly downloads
4
decreased by-98.74%
Maintainers
1
Install size
20.1 MB
Created
Weekly downloads
 

Readme

Source

GitHub Workflow Status (branch) Codecov branch npm (scoped)

Copper

Copper is a lightweight node.js library which allows creating Chrome or Chromium browser instances for controlling remotely either using Chrome DevTools Protocol or W3C WebDriver Protocol.

Use Cases
  • Run tests on a remote chrome browser, using technologies you already use such as Puppeteer or WebdriverIO
  • Run Selenium tests without Selenium - Copper simply replaces the Selenium server and compatible to most selenium clients
  • Generate PDF or screenshots of a webpage
  • Any other usage of a remote chromium instance you can think of: scraping, crawling, automating, and probably many more - just use Copper to create a remote Chromium and access it using one of the protocols it exposes: CDP and WebDriver

Getting started

Installation
npm i -g @copperjs/copper
# or
yarn global add @copperjs/copper
Usage
copper standalone --port 9115

run a puppeteer tests using copper:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.connect({ browserWSEndpoint: 'ws://localhost:9115' });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'example.png' });

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

or run a selenium test using copper:

const webdriverio = require('webdriverio');

(async () => {
  const browser = await webdriverio.remote({ path: '/wd/hub/', hostname: 'localhost', port: 9115 });
  await browser.url('https://example.com');
  await page.saveScreenshot('example.png');

  await browser.deleteSession();
})();

Key Features

  • Scale out multiple nodes of Copper using a Hub/Node architecture inspired by Selenium Grid (Hub/Node).
  • Uses pure Node.js - no more complied binaries and jars that must match your browser version. Copper uses chrome-launcher meaning it will run on any machine with chrome/chromium on it.
  • Lightweight and fast - see benchmarks
Our Name
As you can see - Copper is right in between Chromium and Selenium in the Periodic table. since what Copper does, is kinda between those two - this name was just there for us to use.

Roadmap

  • create docker files for standalone, headless standalone, node, headless node, hub
  • write some uts
  • write nice readme
  • publish to npm
  • support Docker and publish to Dockerhub
  • support w3c Webdriver commands (WIP)
  • support TLS
  • support HTTP2
  • benchmarks

Keywords

FAQs

Last updated on 04 Jul 2021

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

SocketSocket SOC 2 Logo

Product

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc