# Require screenshots to be preceded by an assertion (`cypress/assertion-before-screenshot`) | |
<!-- end auto-generated rule header --> | |
If you take screenshots without assertions then you may get different screenshots depending on timing. | |
For example, if clicking a button makes some network calls and upon success, renders something, then the screenshot may sometimes have the new render and sometimes not. | |
## Rule Details | |
This rule checks there is an assertion making sure your application state is correct before doing a screenshot. This makes sure the result of the screenshot will be consistent. | |
Examples of **incorrect** code for this rule: | |
```js | |
cy.visit('myUrl'); | |
cy.screenshot(); | |
``` | |
Examples of **correct** code for this rule: | |
```js | |
cy.visit('myUrl'); | |
cy.get('[data-test-id="my-element"]').should('be.visible'); | |
cy.screenshot(); | |
``` | |