You can use puppeteer-extra plugins by passing them into the plugins array within the connect options. Note that some plugins (like puppeteer-extra-plugin-anonymize-ua) might increase detection risk.
Example installation and usage:
npm i puppeteer-extra-plugin-click-and-wait
const { connect } = require("puppeteer-real-browser");
const clickAndWaitPlugin = require("puppeteer-extra-plugin-click-and-wait");
async function test() {
const { page, browser } = await connect({
args: ["--start-maximized"],
turnstile: true,
headless: false,
customConfig: {},
connectOption: {
defaultViewport: null,
},
plugins: [clickAndWaitPlugin()],
});
await page.goto("https://google.com", { waitUntil: "domcontentloaded" });
await page.clickAndWaitForNavigation("body");
await browser.close();
}
test();
const test = require("node:test");
const assert = require("node:assert");
const { connect } = require("puppeteer-real-browser");
test("Puppeteer Extra Plugin", async () => {
const { page, browser } = await connect({
args: ["--start-maximized"],
turnstile: true,
headless: false,
// disableXvfb: true,
customConfig: {},
connectOption: {
defaultViewport: null,
},
plugins: [require("puppeteer-extra-plugin-click-and-wait")()],
});
await page.goto("https://google.com", { waitUntil: "domcontentloaded" });
await page.clickAndWaitForNavigation("body");
await browser.close();
});