Recommended Free Tools
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
- Open the page in Microsoft Edge.
- Press Ctrl+Shift+S or open Edge’s menu and choose Web capture.
- Choose Capture full page to include content below the fold, or Capture area to select a region.
- 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.
#1 Best Overall
- 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:
mkdir website-capturecd website-capturenpm init -ynpm install playwrightnpx 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.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsPass 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
- 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: truefrom the screenshot call. - Full page: use
fullPage: trueto 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
cliprectangle when only a known area is needed. Define its position and dimensions in page coordinates. - Pixel scale: Playwright’s screenshot
scaleoption 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.
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
- 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.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchUse 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.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
- 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.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →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.
Best Value
- 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.
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.
Quick Recap
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.

