Free tools Windows power users keep installed
One-click scans. No signup required.
Capture a signed-in page by saving Playwright’s browser-context authentication state after login, restoring that state in the context that visits the protected route, and then calling page.screenshot(). The essential safeguard is to wait for a clear sign-in signal before saving or capturing; otherwise, you may save incomplete credentials or screenshot a login page instead.
How the authenticated screenshot workflow works
A Playwright Page belongs to a BrowserContext. Authentication state belongs to that context, so save and restore it at the context level; capture the image from the page opened in that context. The login flow and the signal that proves login succeeded are application-specific.
- Open the application’s login page and complete its login flow.
- Wait for a reliable signed-in signal, such as the final redirect URL or a visible account control.
- Save the owning context’s state to a protected file.
- Use that file as
storageStatefor the context that visits the protected URL. - Verify the destination is signed in, then call
page.screenshot().
Save authentication state after login
The following TypeScript example shows the setup project’s core action. Replace the URL, selectors, and signed-in indicator with those for your application. The example is an adaptation of Playwright’s documented pattern, not a tested login for a particular site.
import { test, expect } from '@playwright/test';
test('save authenticated state', async ({ page }) => {
await page.goto('https://example.com/login');
await page.getByLabel('Email').fill(process.env.TEST_EMAIL!);
await page.getByLabel('Password').fill(process.env.TEST_PASSWORD!);
await page.getByRole('button', { name: 'Sign in' }).click();
// Prefer an app-specific signal that only appears after authentication.
await expect(page.getByRole('link', { name: 'My account' })).toBeVisible();
await page.context().storageState({ path: 'playwright/.auth/user.json' });
});
Credentials should come from environment variables or your test secret mechanism, not source code. Do not assume the example labels or selectors match the target site. Login may involve redirects, MFA, or application-specific completion steps.
#1 Best Overall
- 14" diagonal, 1366x768 resolution, HD BrightView LED, Glossy NON-TOUCH Display
Wait for login to finish, not just the submit click
A successful click does not prove that authentication is complete. Playwright notes cookies may be set across multiple redirects. Wait for the final URL or, preferably, a visible signed-in UI that indicates the session is established; save state only after that condition.
Restore state and capture the protected page
Configure the consuming test to use the saved state. The following standalone test shows the key calls; in a project, configure storageState on the project or test fixture instead of repeatedly supplying it.
Rank #2
- 1.1 GHz (boost up to 2.4GHz) Intel Celeron N5030 Quad-Core
- 4GB DDR4 System Memory; 128GB Solid State Drive
- 11.6" HD (1366 x 768) Multi-Touch Display
- Combo headphone/microphone jack - Noble Wedge Lock slot - HDMI; 2 USB 3.1 Gen 1
- Windows 11 Pro
import { test, expect } from '@playwright/test';
test.use({ storageState: 'playwright/.auth/user.json' });
test('capture the signed-in account page', async ({ page }) => {
await page.goto('https://example.com/account');
await expect(page.getByRole('heading', { name: 'Account' })).toBeVisible();
await page.screenshot({ path: 'authenticated-account.png', fullPage: true });
});
For project-based configuration, set use.storageState to the state file in the project that needs it. Playwright’s official authentication guide describes using a setup project and dependent projects. The Page API documents page.screenshot() and the BrowserContext API documents storage state. Match the documentation to your installed Playwright version when using version-sensitive options.
Check the destination, too
Before treating the file as a valid authenticated screenshot, assert a destination-specific signed-in element or other observable condition. A saved state file does not guarantee the app will accept it indefinitely: sessions can expire or be invalidated server-side.
Rank #3
- 256 GB SSD of storage.
- Multitasking is easy with 16GB of RAM
- Equipped with a blazing fast Core i5 2.00 GHz processor.
Choose one shared account or separate worker accounts
| Strategy | Use it when | Trade-off or condition |
|---|---|---|
| Authenticate once and reuse state | Tests can safely run simultaneously with the same account and do not conflict through server-side changes. | Do not use this shared-account approach when tests mutate shared server-side data or authentication is browser-specific. |
| One account and state per parallel worker | Concurrent tests modify shared server-side data and could interfere with each other. | Requires separate accounts and corresponding state for workers. |
Playwright’s authentication guide describes the setup-project approach, the separate-worker-account case, and the fact that UI mode does not run the setup project by default. If state expires, rerun the authentication setup; if the state should be disposable between runs, the guide suggests putting it under the test project’s output directory, which is cleaned before a run.
Know what storage state captures
Playwright’s current BrowserContext documentation describes storage state as including cookies, a local-storage snapshot, IndexedDB, and virtual WebAuthn credentials. The API also documents options for IndexedDB, virtual WebAuthn credentials, and origin-private file-system state (OPFS). Availability and exact option names can vary by Playwright version; consult the API documentation compatible with the package you installed. The docs state OPFS is not supported in ephemeral WebKit contexts.
Rank #4
- EFFORTLESS EVERYDAY PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 Home system, delivering reliable, low-power efficiency for daily tasks like document editing, email, online classes, and web browsing
- 15.6-INCH FULL HD DISPLAY: Enjoy immersive visuals on the 15.6" FHD (1920x1080) anti-glare screen with micro-edge bezels. Delivers clear details and comfortable viewing for long study sessions, working on spreadsheets, and video playback
- RESPONSIVE MULTITASKING & STORAGE: Built with 4GB LPDDR4 RAM and 128GB eMMC storage for smooth daily essential use. Expand your storage by up to 1TB via the integrated TF card slot to easily store movies, photos, and working files
- ADVANCED CONNECTIVITY: Outfitted with 2x Full-Featured Type-C ports for data transfer, fast charging, and dual-monitor output, alongside 2x USB 3.2 Gen1 ports and a 3.5mm audio jack for complete peripheral compatibility
- LIGHTWEIGHT & SILENT OPERATION: Slim and portable for effortless travel or commuting. Features a 1MP HD webcam for remote meetings, 38Wh battery with 45W Type-C fast charging, and a fanless silent design for peaceful work environments.
If the app keeps authentication in IndexedDB
Use the documented IndexedDB option when the application stores tokens there and the installed Playwright version supports it. Do not enable extra state capture without a reason; first establish where the application actually keeps its session.
If the app depends on sessionStorage
Playwright’s authentication guide says sessionStorage is not persisted across page loads and is not included through a built-in storageState API. If your app truly depends on it, use a separate manual approach: read the needed origin-specific values, save them, and seed them with an initialization script before application scripts run. This is an application-specific addition, not a substitute for checking the destination’s authenticated state.
Recommended Free Tools
Best Value
- WINDOWS 11 | STABLE PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 system, this laptop delivers stable performance for everyday computing tasks. It supports web browsing, online learning, document editing, email communication, and basic office work with optimized power efficiency, providing a practical and reliable experience for essential daily use for daily use.
- 15.6” FHD IPS DISPLAY: Features a 15.6-inch Full HD IPS display with narrow bezels, offering wider viewing angles and clearer image details compared to standard panels. The improved screen-to-body ratio enhances visual experience for study, reading, document work, and video playback, making it suitable for both productivity and entertainment use.
- 4GB DDR4 + 128GB eMMC STORAGE: Equipped with 4GB DDR4 memory and 128GB eMMC storage for everyday basics such as browsing, documents, email, and online learning platforms. The built-in TF card slot supports storage expansion up to 1TB, giving you more flexibility for files, photos, videos, and daily documents. TF card not included.
- CONNECTIVITY & PORTS: Includes 1× TF card slot, 2× USB 3.2 Gen1 ports, and 2× full-featured Type-C ports (USB 3.2 Gen1). The Type-C ports support data transfer, charging, and video output, enabling flexible connection with external devices such as monitors, storage, and peripherals for daily work and study use.
- LIGHTWEIGHT DESIGN | ONLINE COMMUNICATION: Designed with a slim, portable profile, this laptop is easy to carry for school, commuting, and travel. A built-in 1MP front camera supports online classes, video meetings, remote communication, and everyday conferencing. The 3300mAh battery works with the low-power system design to support practical daily use, while thermal optimization helps maintain quieter operation during extended tasks.
Protect the saved state and screenshot
Playwright warns: “The browser state file may contain sensitive cookies and headers that could be used to impersonate you or your test account.” Treat the file as a credential.
- Keep the authentication-state directory out of version control. Playwright recommends ignoring
playwright/.authin the repository. - Restrict access to the file according to your environment’s security practices, and delete or regenerate it when it expires.
- Decide whether the screenshot may contain private account details before retaining or sharing it.
Troubleshoot failed or misleading captures
| Symptom | Likely cause | What to check or change |
|---|---|---|
| The screenshot shows the login page | The state was saved before login completed, expired, or was rejected. | Wait for a verified signed-in signal before saving; rerun setup and assert a signed-in element on the destination. |
| Login appears successful, but the protected route redirects | Authentication was not complete at save time, the server invalidated the session, or the app relies on state not restored by the default setup. | Wait through redirects; check the app’s state model, including IndexedDB or sessionStorage where relevant; create fresh state and retest. |
| Tests interfere with one another | Parallel tests share an account while changing shared server-side data. | Use separate accounts and saved state per parallel worker. |
| UI mode does not have a fresh state file | The setup project is not run by default in UI mode. | Run the authentication setup manually before using the saved state. |
| WebKit does not restore OPFS state | OPFS is unsupported in ephemeral WebKit contexts, according to the BrowserContext documentation. | Do not rely on OPFS capture in that context; verify the behavior and options for your installed Playwright version. |
Or skip the browser setup
If you need a screenshot rather than a Playwright test, ScreenshotNeo is a website screenshot API and MCP server. Its API captures a URL in one GET request; it is not a replacement for your app’s login flow, so use it only for pages it can access. For authenticated pages, confirm how your access method works before sending any credentials or private data.
Example cURL request for a public page (replace the URL; keep your key private):
Quick Recap
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for request options. Cookie banners, popups and chat widgets are removed before the shot; bot checks, blank pages and failed loads are never billed; an MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. Sign up for free and get 1,000 screenshots a month with no card.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteProduct 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.

