rebrowser-puppeteer
v23.10.3
Published
A drop-in replacement for puppeteer patched with rebrowser-patches. It allows to pass modern automation detection tests.
Downloads
16,675
Maintainers
Readme
rebrowser-puppeteer
⚠️ This is the original
puppeteer
patched withrebrowser-patches
.🕵️ The ultimate goal is to pass all automation detection tests presented in
rebrowser-bot-detector
.🪄 It's designed to be a drop-in replacement for the original
puppeteer
without changing your codebase. Each major and minor version of this repo matches the original repo, patch version could differ due to changes related to the patch itself.☝️ Make sure to read: Patches for Puppeteer and Playwright
🐛 Please report any issues in the
rebrowser-patches
repo.
Puppeteer
Puppeteer is a JavaScript library which provides a high-level API to control Chrome or Firefox over the DevTools Protocol or WebDriver BiDi. Puppeteer runs in the headless (no visible UI) by default
Get started | API | FAQ | Contributing | Troubleshooting
Installation
npm i puppeteer # Downloads compatible Chrome during installation.
npm i puppeteer-core # Alternatively, install as a library, without downloading Chrome.
Example
import puppeteer from 'puppeteer';
// Or import puppeteer from 'puppeteer-core';
// 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.locator('.devsite-search-field').fill('automate beyond recorder');
// Wait and click on first result.
await page.locator('.devsite-result-item-link').click();
// Locate the full title with a unique string.
const textSelector = await page
.locator('text/Customize and automate')
.waitHandle();
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();