tdro

Another wandering soul whispering into the void. If you are looking for my blog you are in the wrong place. The profile and header pictures are brought to you by cdd20.

tdro micro.thedroneely.com (edited) view
  • Markdown Plaintext Embed Permalink
  • 140/50 words 47s read
    My puppeteer scripts now use deno.

    No more need for npm in my personal stack! spawnSync + which returns the local browser’s path.

    javascript
    import puppeteer from "https://deno.land/x/puppeteer@16.2.0/mod.ts";
    
    const chrome = "firefox";   /* Browser Chrome: "firefox" | "chromium" | "google-chrome" | ... */
    const product = "firefox";  /* Product Base:   "firefox" | "chrome" */
    
    const { status, stdout, stderr } = Deno.spawnSync("which", {
      args: [ chrome, ],
    });
    
    const executablePath = new TextDecoder().decode(stdout).trim();
    
    const browser = await puppeteer.launch({
      headless: false,
      executablePath: executablePath,
      product: product,
    });
    
    const page = await browser.newPage();
    await page.setViewport({ width: 1024, height: 768, });
    
    const sites = [ "example.com", ];
    
    for (const site of sites) {
      await page.goto("http://" + site);
      await page.screenshot({ path: site + ".png" });
    }
    
    await browser.close();
    Basic Boilerplate: Captures a picture of example.com (main.ts)
    shell
    deno run --allow-all --unstable main.ts
    Deno Version: 1.23.0
    #gists #webdev