Skip to content

Test

Status: PASS (Node.js SDK) / NEEDS-ACCOUNT (cloud features)

Classification: PASS for the open-source SDK. NEEDS-ACCOUNT for the cloud scraper API and ready-made datasets at rebrowser.net.

Verified install

The rebrowser-puppeteer package installs successfully from npm without an account.

bash
npm install rebrowser-puppeteer

Version confirmed via:

bash
node -e "const p = require('./node_modules/rebrowser-puppeteer/package.json'); console.log(p.name + '@' + p.version)"

Actual output:

rebrowser-puppeteer@24.8.1

rebrowser-puppeteer is a drop-in replacement for puppeteer with anti-detection patches applied. The SDK installs and loads without any account or API key.


Smoke Test: Apply and revert a patch on puppeteer-core

In a project that already has puppeteer-core installed:

bash
# Apply patches
npx rebrowser-patches@latest patch --packageName puppeteer-core

# Expected output contains:
# Patching puppeteer-core...
# Patched successfully (or similar success line)

# Revert patches
npx rebrowser-patches@latest unpatch --packageName puppeteer-core

# Expected output contains:
# Unpatching puppeteer-core...
# Unpatched successfully (or similar success line)

Smoke Test: Check latest tested compatibility versions

As of the last verified README update:

LibraryLatest tested versionDate
Puppeteer24.8.12025-05-06
Playwright1.52.02025-04-17

If your installed version is newer than these, check https://github.com/rebrowser/rebrowser-patches for updated compatibility notes before deploying to production.


Debug Mode

Enable verbose output to confirm patch activation at runtime:

bash
REBROWSER_PATCHES_DEBUG=1 node your-automation-script.js

Expected success output includes lines like:

[rebrowser-patches] Runtime fix mode: addBinding
[rebrowser-patches] Source URL override: pptr:internal -> jquery.min.js

If these lines appear in stderr/stdout, the patches are active for that run.


Cloud Platform Connection Test (NEEDS-ACCOUNT)

The cloud scraper API and ready-made datasets at rebrowser.net require a registered account and API key. Without an account, the connection below will fail authentication.

javascript
import puppeteer from 'rebrowser-puppeteer-core'

const browser = await puppeteer.connect({
  browserWSEndpoint: 'wss://api.rebrowser.net/YOUR_PROFILE_ID?apiKey=YOUR_API_KEY',
})
const page = await browser.newPage()
await page.goto('https://example.com')
console.log('Connected. Title:', await page.title())
await browser.close()

Expected success output:

Connected. Title: Example Domain

A successful connection with a page title printed confirms the profile is active, the API key is valid, and the CDP endpoint is reachable.