3.0.3
Released Released on July 29, 2018
Bugfixes:
Reverted the Chrome argument that disabled
RootLayerScrollingwhich was used to prevent the application under test from "shaking" due to a bug in versions 66 and 67. This workaround inadvertently created a different and much more severe bug in Chrome 68 that would miscalculate pointer coordinates. This led to Cypress giving confusing errors about elements being covered up on action. This is still a bug in Chrome, and is fixed in Canary but has not yet been released to the stable Chrome 68 channel. Nevertheless, removing theRootLayerScrollingflag does fix it. We did several experiments to try to ensure that the "shaking" behavior does not exhibit itself in Chrome 68. We have limited the--disable-blink-features=RootLayerScrollingflag to Chrome 66 and Chrome 67. Fixes #2223 and #2215 and #2037.Fixed another bug with Chrome that caused the
chromeWebSecurity: falseoption to not be respected. This was due to Chrome progressively rolling out trials of a new option that attempts to isolate sites (and iframes) in their own child process if their origins are different. Fixes #1951 and #2001 and #715.Fixed Cypress hanging in CI due to excessive and unnecessary globbing. We finally tracked down this issue which made it appear as if Cypress was "hanging" after closing a spec file and then attempting to open the next one. Fixes #2183 and #1905 and #1912.
We are now properly serializing nested object arguments when using the Module API via
cypress.open()orcypress.run(). Passing nested objects inreporterOptionsnow works correctly. This is especially useful when usingmocha-multi-reporters. In addition to fixing the Module API, we are now also properly handling nested arguments from the Command Line. In order to pass nested objects within CLI params you must pass stringified JSON. This is useful for properties such asblacklistHosts. Fixes #1348 and #1357 and #2221.Fixed a bug causing screenshots saved via cy.screenshot() to be in different folders when you ran using cypress open vs cypress run . Fixes #2091.
Fixed bugs with Electron losing focus when running headlessly via cypress run after navigation. Now the browser will always act as if it is focused no matter what and in all situations when running headlessly. If you were seeing focus related problems when running headlessly, this should fix them. Fixes issue #2190.
Fixed using when using cy.click() on an element that bound to the
focusevent while the browser was currently out of focus. We have now normalized all focus and blur events to behave the same as if the browser is always in focus. This should fix the other batch ofblurandfocusissues that users have been experiencing. Fixes #549 and #2198.Fixed the vast majority of known issues with .type(). Fixes #1241.
Using .type() on an input of type
emailornumberwill no longer fire unnecessary additionalblurandfocusevents. Fixes #2210.Fixed .type() breaking on chains when passing the same
optionsreferences. Fixes #365.Fixed an issue with .clear() not behaving the same as
cy.type('{selectall}{backspace}'). Fixes #420.Fixed a bug with issuing an additional
blurandclickevent when chaining.clear().type(...). Fixes #593.Fixed many issues with typing into
[contenteditable]elements. WYSIWYG, Draft.js based, and other HTML editors now work correctly. Fixes #596 and #1686 and #2096.The caret now correctly moves on
[contenteditable]elements. Fixes #1108.Fixed .type() inserting a rogue
<br>tag after the first letter in[contenteditable]elements. Fixes #1926.Fixed issue where change events with .type() would not fire correctly for many more situations and edge cases. Fixes #651.
Fixed issues with typing into JS based text-mask plugins. Basically anything that would alter the
.valuein response to certain events now works correctly. Fixes #940 and #1684.Using .clear() on an input with a
maxlengthattribute now works. Fixes #1002 and #2056.Fixed issues with .type() not firing the
changeevent oninput[type=number]. Fixes #1171.Fixed other event related issues with .type() that were not firing correctly. Fixes #1209.
Fixed even more issues with .type() not inserting characters on
input[type=number]. Fixes #1381.Fixed not being able to type negative numbers into
input[type=number]elements. Fixes #2173.Fixed
selectionStartandselectionEndwith .type() when using{leftarrow}or{rightarrow}. Fixes #1234.Fixed not being able to type into a
datetime-localinput. Fixes #1366.Calling .focus() or .blur() on cy.window() no longer fires blur events on the
activeElementor causes it to becomebody. Fixes #2234.Using
cy.get('body').click()now correctly changes theactiveElementback tobodyand causes the existingactiveElementto receiveblur. Fixes #2236.
Misc:
We've loosened up the restrictions surrounding what we consider a typeable element. You can now type into inputs with invalid
typeattributes because the browser does still consider them regulartextinputs and allows you to type into them. Fixes #586.Using
{uparrow}or{downarrow}with .type() on aninput[type=number]element now increments or decrements the number configured via thestepattribute. Fixes #2110.Using
{uparrow}or{downarrow}with .type() now correctly moves the cursor ontextareaor[contenteditable]elements. Fixes #2187.You can now use .focus() or .blur() on
cy.get('body'). Fixes #2235.Bumped the version in
junitreporter dep from1.12.1to1.17.0which adds a few new features. Fixes #2238.Bumped deps that
npm auditwas yelling about. Fixes #1701.Runs showing up in the
Runstab now more closely match how they display in the Dashboard. Fixes #2060.Added more debug logs. Fixes #2108.
When recording to the Dashboard we now more accurately collect commit details when it is missing from the local
gitdata. Fixes #2129 and #2073.Updated build in example kitchen sink to
1.0.2. Fixes #2139.Updated the json-schema describing
videoCompression. Allowing it to be a boolean. Fixes #2140.
Documentation Changes: