Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a one-off screenshot, use Microsoft Edge’s built-in Web Capture: press Ctrl+Shift+S, choose Capture full page or Capture area, then save or copy the result. For repeatable PowerShell automation, run a browser automation script such as Playwright from PowerShell. A real browser renders JavaScript and can capture the visible viewport or the full page.

Choose the right way to capture the page

Method Best for What to plan for
Microsoft Edge Web Capture A person taking a one-off screenshot It is manual, so it is not suited to unattended jobs. Edge offers full-page and area capture. Microsoft Edge Web Capture
Playwright Repeatable scripts, headless capture, and full-page screenshots Requires Node.js, the Playwright package, and browser binaries or a compatible installed browser. Microsoft Edge Playwright guidance
WebDriver with Selenium Teams that already use WebDriver tests or need user-event simulation Requires an Edge WebDriver compatible with the installed browser and a WebDriver framework. Microsoft Edge WebDriver guidance
Puppeteer with DevTools Protocol Chromium-focused automation in an existing Puppeteer setup Microsoft lists Puppeteer as an Edge automation option; it is a separate JavaScript dependency. Microsoft Edge automation options

For a PowerShell job without an existing browser-automation standard, Playwright is a practical default: PowerShell handles the command and surrounding workflow, while a browser engine loads and renders the site. Microsoft describes Playwright as cross-browser automation through a single API and shows a page screenshot call. Microsoft’s Playwright documentation

Take a one-off screenshot in Edge

  1. Open the page in Microsoft Edge.
  2. Press Ctrl+Shift+S or open Edge’s menu and choose Web capture.
  3. Choose Capture full page to include content below the fold, or Capture area to select a region.
  4. Save the image or copy it, depending on what you need to do with it.

This route needs no script or package installation. Since a person starts and saves each capture, choose automation for scheduled work, repeated URLs, or integration into a build or test process.

Automate a website screenshot from PowerShell with Playwright

The following implementation uses a small Node.js script for the browser work and invokes it from PowerShell. It captures the entire scrollable page into a PNG. The script accepts the URL as its first argument and an optional output filename as its second.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

1. Install Node.js and Playwright

Install Node.js for your environment, then create a working folder and install Playwright in it. In PowerShell:

  1. mkdir website-capture
  2. cd website-capture
  3. npm init -y
  4. npm install playwright
  5. npx playwright install chromium

Playwright needs its browser binary as well as the package. If you intend to use the installed Microsoft Edge browser instead of Playwright’s Chromium binary, Microsoft documents the msedge channel option. Browser availability and enterprise policies can affect unattended execution; verify them in the environment where the scheduled task will run. Microsoft’s Playwright setup guidance

2. Create the capture script

Save this as capture.js in the working folder:

const { chromium } = require('playwright');
const url = process.argv[2];
const output = process.argv[3] || 'website.png';

if (!url) {
  console.error('Usage: node capture.js <url> [output.png]');
  process.exit(2);
}

(async () => {
  const browser = await chromium.launch({ headless: true });
  try {
    const page = await browser.newPage({ viewport: { width: 1440, height: 900 } });
    await page.goto(url, { waitUntil: 'networkidle' });
    await page.screenshot({ path: output, fullPage: true });
    console.log(`Saved screenshot to ${output}`);
  } finally {
    await browser.close();
  }
})().catch(error => {
  console.error(error);
  process.exit(1);
});

The required capture pattern is to navigate to the URL and call page.screenshot; the script adds argument checking and a finally block so the browser closes even when navigation or capture fails. The networkidle wait works for many ordinary pages, but can be inappropriate for pages that keep connections open or load content later.

3. Run it in PowerShell

node .capture.js 'https://example.com' '.example.png'

Replace the URL and output path with your target. If you omit the second argument, the script saves website.png in the current directory. The output file is written relative to the directory from which Node runs the script.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Pass PowerShell variables safely

For a script or scheduled job, keep the URL and output path in variables and pass each as a separate argument:

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
$url = 'https://example.com'
$output = '.example.png'
node .capture.js $url $output
if ($LASTEXITCODE -ne 0) {
    throw "Screenshot capture failed with exit code $LASTEXITCODE"
}

Use a URL you trust. If it contains shell-special characters, passing it as a quoted PowerShell argument or variable avoids PowerShell interpreting those characters as part of a command.

Choose viewport, full-page, or clipped capture

Set the capture scope to match the job rather than treating “screenshot” as one fixed output.

  • Viewport: captures the current browser viewport; useful when you need the initial view a user sees. Omit fullPage: true from the screenshot call.
  • Full page: use fullPage: true to capture the page’s complete scrollable height. This is useful for documentation or visual records, but long pages can produce very tall images.
  • Clipped region: Playwright supports a clip rectangle when only a known area is needed. Define its position and dimensions in page coordinates.
  • Pixel scale: Playwright’s screenshot scale option controls whether output follows CSS pixels or device pixels; choose based on the consuming system’s resolution needs. See the Playwright screenshot API.

The example sets a 1440-by-900 CSS-pixel viewport, then requests a full-page image. Change the viewport dimensions if the site’s responsive layout needs to be captured at another size.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Wait for JavaScript and page content

A screenshot records what the browser has rendered at capture time. The example waits for networkidle after navigation, but a page’s important content may depend on behavior beyond the initial network load.

  • Late-rendered content: wait for a known element with Playwright’s locator or selector wait before taking the screenshot.
  • Long polling or persistent connections: network activity may never become idle. Use a more suitable navigation wait condition and wait for the specific content you need.
  • Lazy-loaded images: full-page screenshot support does not guarantee every lazy image has loaded. Scroll through the page or otherwise trigger the site’s lazy-loading behavior, then wait for the images before capture.
  • Animations: animation timing can make repeated captures differ. Where consistency matters, disable or wait out animations using page styling or an appropriate browser setting.
  • Authentication and consent: a page that requires a login, cookie choice, or other interaction may show that state rather than the intended content. Use an authorized session and handle the site’s flow explicitly.

Do not use a single fixed delay as a universal readiness test: a delay can be too short on a slow response and unnecessarily long on a fast one. Waiting for the element or state that matters is more targeted.

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Other automation choices

Use installed Microsoft Edge with Playwright

If the target environment requires Microsoft Edge rather than Playwright’s bundled Chromium, Microsoft documents launching with the msedge channel. This depends on Edge being installed and available to the process; check the official Edge Playwright instructions for the supported setup.

Use Selenium and Edge WebDriver

Choose Selenium when the organization already uses WebDriver tests or needs its browser interaction model. Install both an Edge WebDriver version compatible with the browser and a WebDriver framework such as Selenium. This adds driver setup and version compatibility to maintain; it is not necessary for the Playwright example.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use Puppeteer for a Chromium-focused stack

Puppeteer is another JavaScript automation dependency in the Chromium/DevTools ecosystem. It is a sensible choice when it is already part of the application, but adopting it solely for one PowerShell screenshot means maintaining a separate automation setup rather than using Playwright’s direct example.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common capture failures

“node” is not recognized

PowerShell cannot find Node.js on PATH, or Node.js is not installed. Install Node.js for the account that runs the capture, then open a new PowerShell session and verify with node --version.

Playwright cannot launch a browser

The Playwright package may be installed while its browser binary is missing. From the project folder, run npx playwright install chromium. If using the Edge channel, confirm Edge is installed for the environment and that enterprise policy does not block the process.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

The screenshot is blank or missing content

Check that navigation reached the intended page and that the script waits for the content you need. A client-rendered page may need an element-specific wait; an authenticated page may require a valid session. A blank output can also result from a site refusing the automated browser.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Navigation hangs or times out

Some sites keep network requests open, making networkidle a poor fit. Wait for the required page state or element instead. Also check connectivity, proxy and firewall rules, and whether the URL redirects to a page that requires interaction.

The capture cuts off images or content

Confirm that the screenshot call uses fullPage: true if content below the viewport is required. For lazy content, trigger loading by scrolling and wait for the resulting elements or images before taking the screenshot.

The page layout is unexpected

Responsive layout depends on viewport dimensions. Set the viewport deliberately before navigation or capture, and use consistent dimensions when comparing runs. Check whether a consent overlay or popup is covering the page.

The image is not where expected

Relative output paths are resolved from Node’s current working directory, not necessarily the directory containing capture.js. Use an absolute path or change to the intended folder before running the command.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. A single request can return an image or PDF, without installing and maintaining a browser in your PowerShell workflow. Its capture process accepts cookie and consent banners like a visitor, then removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be disabled. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. AI agents can use its MCP tools, including take_screenshot, get_page_info, and capture_pdf.

For a command-line call, use cURL from PowerShell (the example saves a WebP):

curl.exe -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

Get an API key and see the ScreenshotNeo API documentation. The same endpoint can be called from Python or Node.js:

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://example.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://example.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo offers 1,000 screenshots per month free with no card; paid plans start at $5 for 3,000 screenshots. Sign up for free.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Frequently asked questions

Can PowerShell itself render a modern website?

PowerShell can orchestrate the capture, but the automated method in this guide delegates rendering to a browser engine through Playwright.

Can I capture only one element?

Yes. In Playwright, locate the element and take its screenshot rather than capturing the whole page. This is useful for a chart, panel, or other specific component.

Can I run the capture without opening a browser window?

Yes. The Playwright example launches Chromium with headless: true, so it does not display a visible browser window.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.