Video

Record motion and timing evidence when screenshots and traces are not enough.

Video records what the browser displayed over time. Use it when time itself is part of the bug: motion, scrolling, drag, focus movement, or a transient state.

Choose video or another artifact

Question Better artifact
What did the page look like at one point? screenshot
Which action caused the failure? trace
Did animation, scrolling, drag, or focus movement behave correctly? video
What did JavaScript or the network report? logs and trace

Do not add video because a test is generally flaky. If you need to know which action, request, or DOM state caused the failure, record a trace first.

Decide retention before recording

Choose the directory, upload condition, and retention period before enabling video. The useful default is to upload recordings only after a failure. Keep successful recordings only for demos or release evidence with an explicit owner.

The browser finalizes the file when the context closes. Uploading or inspecting the directory before that point can produce an incomplete artifact.

If your runner exposes a VideoInterface, use path() or saveAs() after the context has closed. Otherwise, collect the configured video directory. The capture video on failure recipe contains the copyable setup.

Keep assertions separate

Do not use video to replace assertions. A video can explain a failure, but it rarely proves expected behavior on its own.

Choose the next step