To capture an element after scrolling it into view, call .scrollIntoView(), then query that element again and call .screenshot(). Cypress warns that chaining subject-dependent commands directly after .scrollIntoView() is unsafe. If you want the visible page area rather than the element alone, take a viewport screenshot after scrolling.
Capture the element after scrolling
Use a fresh query for the screenshot step. This avoids relying on the subject yielded before scrolling:
cy.get('[data-testid="target"]')
.scrollIntoView()
cy.get('[data-testid="target"]')
.should('be.visible')
.screenshot('target-after-scroll')
Replace [data-testid="target"] with a selector for the element you need. The visibility assertion runs after scrolling and is retried until it passes or times out. Cypress documents that .scrollIntoView() itself fires once and is not retried; it also warns against chaining commands that rely on its subject. See Cypress’s scrollIntoView API documentation.
Choose what the screenshot should include
| Capture type | Command | What it captures |
|---|---|---|
| Element | cy.get(selector).screenshot() |
The selected element. Use the padding option if you want space around it. The capture setting does not apply to element screenshots. |
| Current viewport | cy.screenshot({ capture: 'viewport' }) |
The application area currently visible in the browser. Scroll first if the region you want is lower on the page. |
| Full page | cy.screenshot({ capture: 'fullPage' }) |
The application from top to bottom, captured by scrolling and stitching images. Fixed or sticky elements may appear more than once. |
| Runner | cy.screenshot({ capture: 'runner' }) |
The browser viewport and Cypress Command Log. Failure screenshots are coerced to runner capture. |
These options and their behavior are documented in the Cypress screenshot API.
Free tools Windows power users keep installed
One-click scans. No signup required.
#1 Best Overall
- 14" diagonal, 1366x768 resolution, HD BrightView LED, Glossy NON-TOUCH Display
Capture the viewport after scrolling
Use this version when the screenshot should show the page around the target rather than crop to the target itself:
cy.get('[data-testid="target"]').scrollIntoView()
cy.get('[data-testid="target"]').should('be.visible')
cy.screenshot('viewport-after-scroll', { capture: 'viewport' })
The separate query and assertion make the sequence explicit: scroll, confirm the target is visible, then capture the current viewport.
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
Handle fixed headers and positioning
.scrollIntoView() accepts duration, easing, offset, and timeout. The offset adjusts the position after scrolling, which can help if a fixed header covers the target. For example:
cy.get('[data-testid="target"]')
.scrollIntoView({ offset: { top: -80, left: 0 } })
cy.get('[data-testid="target"]').should('be.visible')
cy.get('[data-testid="target"]').screenshot('target-after-scroll')
Adjust the offset to suit the page layout. Cypress snapshots do not accurately represent scroll positions, so use the actual test run or its video when investigating where the page scrolled.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsRank #3
- 256 GB SSD of storage.
- Multitasking is easy with 16GB of RAM
- Equipped with a blazing fast Core i5 2.00 GHz processor.
Know when the image is written
Cypress screenshots are asynchronous: the application can change between issuing the command and the image being taken, so the image may show a slightly later state. Cypress describes screenshot capture as taking around 100ms; that is typical timing in its documentation, not a guaranteed bound or an independent benchmark.
Manually captured screenshots are saved under cypress/screenshots by default, with names based on the spec and test. You can supply a screenshot name, and the screenshots folder is configurable. Cypress’s onAfterScreenshot callback provides information such as the path and image dimensions. The after:screenshot Node event runs after the file is written and can inspect or modify screenshot details; it runs in Node, so Cypress cy commands are not available there. See the screenshot API and after:screenshot event documentation.
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.
Troubleshoot missing or misplaced screenshots
- The target is not in the image: Check that the selector identifies the intended element and that it is visible after scrolling. Keep the visibility assertion after the scroll.
- A fixed header covers the target: Set an appropriate
offsetin.scrollIntoView(), then take the screenshot using a fresh query. - The page looks like it did not scroll in a Cypress snapshot: Cypress snapshots do not accurately show scroll positions. Inspect the actual run or video instead.
- The screenshot differs from the exact instant the command ran: Capture is asynchronous, and the application can change before the image is taken. Make sure the UI is in the intended state before requesting the screenshot.
- A full-page image repeats a banner or navigation element: Full-page capture stitches images while scrolling, so fixed or sticky elements can be duplicated. Use an element or viewport screenshot if that output is unsuitable.
Or skip the browser setup
For a URL-based capture rather than a Cypress test, ScreenshotNeo provides a screenshot API and an MCP server for developers. One GET request returns an image or PDF; the API supports PNG, JPEG, and WebP screenshots.
cURL example, using the documented endpoint and parameters:
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallBest 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.
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 setup and options. Before capture, it can accept consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots.
Sign up for ScreenshotNeo’s free plan: 1,000 screenshots a month, no card required.
Frequently Asked Questions
Can I screenshot only the element after scrolling?
Yes. Re-query the element after `.scrollIntoView()` and call `.screenshot()` on that query.
Does `capture: ‘viewport’` apply to an element screenshot?
No. Cypress’s `capture` setting applies to page captures; element screenshots use the selected element, and can use `padding` for surrounding space.
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.

