More consistent screenshots and clearer errors

When reducing motion, sliders, carousels and looping animations stay still more often, so repeated screenshots of the same page match. Errors name the failed requests and password-protected sites.

Changelog2 min read

Written by

Dmytro Krasun

Published on

If you compare screenshots of the same page over time, for example, before and after an update, differences that came from motion on the page made the comparison fail. Screenshots taken when reducing motion now match more often, and some errors are clearer.

More consistent screenshots when reducing motion

  • Sliders and carousels stop and show their first slide on many more sites.
  • Script-driven fades, for example, popups and slide transitions, finish at once instead of being captured halfway.
  • Looping animations that only move elements, such as scrolling logo strips and rotating badges, now start from the same point in every screenshot. Looping animations that fade keep their current state.
  • Fonts and images that are still loading when the screenshot is about to be taken get up to 3 seconds more, so text and images are less often missing or in a fallback font.
  • Sliders are checked again right before a full-page screenshot is taken.

Screenshots taken when reducing motion can therefore differ from the ones you took before: sliders show their first slide instead of whichever slide was visible.

Blocking cookie banners hides the banners of common consent platforms more reliably. Before, a banner could appear in one screenshot of a page and not in the next.

Clearer errors

  • matched_failed_request now names the requests that failed, up to five, with their HTTP status code or the browser’s error. Many failures are stylesheets that a site still links but that no longer exist, so check whether the named files matter before treating the page as broken.
  • A stylesheet that loaded successfully but that the browser then cancelled no longer counts as a failed request for fail_if_request_failed.
  • Password-protected sites, for example, staging sites behind HTTP authentication, now return the new host_requires_authentication error (HTTP 400) instead of network_error (HTTP 500). Pass the credentials in the authorization option. If your integration handles network_error for these sites, add the new code. With a custom proxy, these failures still return network_error.

Full-page screenshots

  • Some pages that take over mouse-wheel scrolling kept full-page screenshots scrolling until the request timed out. They now render.
  • The timeout error documentation explains what to do when a very long page takes too long to scroll.

Read more product updates

New features, bug fixes, and optimizations...

View all product updates
Custom banner blocking for more websites

Custom banner blocking for more websites

We added more custom banner blocking rules and improved heuristic blocking for popups, overlays, and localization modals on more websites.

Read more

1 min read

Better failure and timeout handling

Better failure and timeout handling

Requests fail within 90 seconds instead of retrying for minutes, and every API error is returned as JSON.

Read more

1 min read

ScreenshotOne CLI is available

ScreenshotOne CLI is available

Use command line interface to automate screenshots in your workflows with ScreenshotOne.

Read more

1 min read

Automate website screenshots

Exhaustive documentation, ready SDKs, no-code tools, and other automation to help you render website screenshots and outsource all the boring work related to that to us.