My puppeteer scripts now use deno. No more need for npm in my personal stack! The native browser’s path comes from which. javascript import puppeteer from "https://deno.land/x/puppeteer@16.2.0/mod.ts"; const chrome = "chromium"; // Browser Chrome: "firefox" | "chromium" | "google-chrome" | ... const product = "chrome"; // Product Base: "firefox" | "chrome" const command = new Deno.Command("which", { args: [chrome] }); const { status, stdout, stderr } = command.outputSync(); const executablePath = new TextDecoder().decode(stdout).trim(); const browser = await puppeteer.launch({ headless: false, executablePath: executablePath, product: product, }); const site = "example.com"; const page = await browser.newPage(); await page.setViewport({ width: 1024, height: 768 }); await page.goto("https://" + site); await page.screenshot({ path: site + ".png" }); await page.waitForSelector('a'); const url = await page.evaluate(() => { return document.querySelector('a').href; }); console.log(url); await browser.close(); Basic Boilerplate: Captures a picture of example.com (main.ts) shell deno run --allow-all main.ts Deno Version: 1.45.5