import { Stagehand } from "@browserbasehq/stagehand";
import puppeteer from "puppeteer-core";
import { z } from "zod/v3";
async function multiPageExample() {
const stagehand = new Stagehand({
env: "BROWSERBASE",
model: "openai/gpt-5",
});
await stagehand.init();
// Connect Puppeteer
const browser = await puppeteer.connect({
browserWSEndpoint: stagehand.connectURL(),
defaultViewport: null,
});
// Get the first page
const pages = await browser.pages();
const ppPage1 = pages[0];
// Create a second page
const ppPage2 = await browser.newPage();
// Navigate both pages
await ppPage1.goto("https://example.com");
await ppPage2.goto("https://another-site.com");
// Use Stagehand on different pages
await stagehand.act("click the button", { page: ppPage1 });
const data = await stagehand.extract(
"extract the title",
z.object({ title: z.string() }),
{ page: ppPage2 }
);
console.log("Extracted from page 2:", data);
await stagehand.close();
}