import { chromium } from "patchright";
const API = "https://api.driver.dev";
const headers = {
Authorization: `Bearer ${process.env.DRIVER_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/v1/browser/session`, {
method: "POST",
headers,
body: JSON.stringify({ country: "US" }),
});
if (!res.ok) throw new Error(`Driver ${res.status}: ${(await res.json().catch(() => ({}))).error ?? res.statusText}`);
const session = await res.json();
try {
const browser = await chromium.connectOverCDP(session.cdpUrl);
try {
const context = browser.contexts()[0] ?? (await browser.newContext());
const page = context.pages()[0] ?? (await context.newPage());
await page.goto("https://example.com");
console.log(await page.title());
} finally {
await browser.close(); // your connection only; the session runs until you stop it
}
} finally {
await fetch(`${API}/v1/browser/session?sessionId=${session.sessionId}`, {
method: "DELETE",
headers,
});
}