Released 12/31/2015
Features:
- Added
waitForAnimations
andanimationDistanceThreshold
configuration options. - Cypress now automatically detects and waits for an element which is animating
to stop animating. The threshold that Cypress considers animating is set to
a distance of
5px
per60fps
. In other words, if your element is moving too fast for a user to interact with, then Cypress considers the element animating and will wait until it finishes before attempting to interact with it. When we say 'interact' we mean apply command actions like.click()
,.select()
,.type()
,.check()
, etc. Waiting for animations prevents a series of edge cases and weird bugs where Cypress was interacting with elements too quickly which might cause undesired side effects in your application which are hard to track down. The downside to this implementation is that for every action Cypress must wait at least 2 run loops before applying actions. This slows down every action command by about32ms
. If your app does not use animations you may wish to turn off this behavior in yourcypress.json
file.
Bugfixes:
- Prevent
undefined
error when attempting to.click()
an element which is fixed position when it is covered by another element. Cypress now correctly provides why it cannot click the element in question. Fixes #90. - Prevent infinite loop in edge cases when checking whether an element was hidden.
Misc:
- The default behavior of
cy.server()
has changed fromforce404: true
to becomeforce404: false
. In other words, Cypress will no longer forcibly send XHR's to 404 status when these XHR's do not match any existingcy.route()
. This change better aligns with predictable usage for most Cypress users.