Impact Score: 5/10
Cypress v3.5.0 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: cypress ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Cypress v3.5.0. Source highlight: *Released 10/23/2019*
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โจ New Features & Capabilities (6)
- We've added more flags to send to Chrome upon launch that should help with issues encountered during browser automation including `--disable-backgrounding-occluded-window`, `--disable-breakpad`, `--disable-ipc-flooding-protection`, `--password-store=basic`, and `--use-mock-keychain`. Addresses #5132 and #3633.
- We added `failures` and `message` types when a run fails using the Module API. Addresses #5335.
- Added a `.rightclick()` doc.
- Added a Webinars doc containing videos of all of the official Cypress webcasts.
- Added the `--config-file` argument to Command Line and Module API doc.
- Added the `nodeVersion` argument to Configuration doc and mentioned its uses in the Plugins Guide and Writing a Plugin doc.
๐ง Bug Fixes & Patches (6)
- "`.dblclick()` dblclick and `.click()` now fire all appropriate mouse events including `mouseover`, `mousemove`, `mouseout`, `pointerdown`, `pointerup`, and `pointermove`. Fixes #1016, #1847, #2045, #2521, #2768, #2928, #2957, and #3224.
- We updated "`.dblclick()` dblclick to follow the same actionability checks as `.click()`. Fixes #3798.
- Coordinates clicked during `.click()` are now correct if the element being clicked is within an iframe. Fixes #4347.
- We now allow `.type()` to be used on any DOM element. The element will receive all of the type events. Fixes #2166 and #3661.
- If a typeable element gains focus during `.type()`, Cypress now continues typing into the newly focused element. Fixes #2240.
- We now correctly borrow the property getter for `maxLength` when using .type() on an input. Fixes #4587.
๐ View Raw Release Notes (Original Developer Log)
*Released 10/23/2019*
**Features:**
- We now record video during `cypress run` in Chrome, Chromium, and Canary browsers. This requires passing the name or path of the Chrome browser to the [`--browser` flag](https://on.cypress.io/command-line#cypress-run-browser-lt-browser-name-or-path-gt). Addresses [#4608](https://github.com/cypress-io/cypress/issues/4608).
- There is a new [`.rightclick()`](https://on.cypress.io/rightclick) command to right click on DOM elements. Addresses [#53](https://github.com/cypress-io/cypress/issues/53).
- Cypress now accepts a [`--config-file` argument](https://on.cypress.io/command-line#cypress-run-config-file-lt-config-file-gt) to specify a different file to be used for Cypress configuration. You can also pass `false` to the `--config-file` to not use any configuration file. Addresses [#1369](https://github.com/cypress-io/cypress/issues/1369).
- You can now use your system's Node version by setting the [`nodeVersion`](https://on.cypress.io/configuration#Node-version) to `system` in your configuration. This Node version will be used to build files in your [`integrationFolder`](https://on.cypress.io/configuration#Folders-Files) and "`supportFile`" configuration#Folders-Files and also be used to execute code in your "`pluginsFile`" configuration#Folders-Files. If not set, Cypress will continue to use the Node version bundled with Cypress. Addresses [#4432](https://github.com/cypress-io/cypress/issues/4432).
- "`.dblclick()` dblclick now accepts `position`, `x`, and `y` arguments. Addresses [#116](https://github.com/cypress-io/cypress/issues/116).
- "`.dblclick()` dblclick now accepts `force` and `multiple` in its `options`. Addresses [#116](https://github.com/cypress-io/cypress/issues/116).
- [`.screenshot()`](https://on.cypress.io/screenshot) now accepts a `padding` argument when screenshotting elements that will alter the dimensions of the screenshot of the element. Addresses [#4440](https://github.com/cypress-io/cypress/issues/4440).
- [`cy.visit()`](https://on.cypress.io/visit) now accepts a `qs` option representing an object of query paramaters to be used in the URL. Addresses [#5034](https://github.com/cypress-io/cypress/issues/5034).
- [`cy.viewport()`](https://on.cypress.io/viewport) now allows for viewport sizes up to 4,000 pixels. Addresses [#5181](https://github.com/cypress-io/cypress/issues/5181).
- [`cy.viewport()`](https://on.cypress.io/viewport) accepts new size presets for `iphone-xr`, `iphone-x`, `samsung-s10` and `samsung-note9`. Addresses [#4967](https://github.com/cypress-io/cypress/issues/4967).
- Passing a `~` to `CYPRESS_CACHE_FOLDER` will automatically resolve to the user's home directory. Addresses [#5386](https://github.com/cypress-io/cypress/issues/5386).
**Bugfixes:**
- "`.dblclick()` dblclick and [`.click()`](https://on.cypress.io/click) now fire all appropriate mouse events including `mouseover`, `mousemove`, `mouseout`, `pointerdown`, `pointerup`, and `pointermove`. Fixes [#1016](https://github.com/cypress-io/cypress/issues/1016), [#1847](https://github.com/cypress-io/cypress/issues/1847), [#2045](https://github.com/cypress-io/cypress/issues/2045), [#2521](https://github.com/cypress-io/cypress/issues/2521), [#2768](https://github.com/cypress-io/cypress/issues/2768), [#2928](https://github.com/cypress-io/cypress/issues/2928), [#2957](https://github.com/cypress-io/cypress/issues/2957), and [#3224](https://github.com/cypress-io/cypress/issues/3224).
- We updated "`.dblclick()` dblclick to follow the same actionability checks as [`.click()`](https://on.cypress.io/click). Fixes [#3798](https://github.com/cypress-io/cypress/issues/3798).
- Coordinates clicked during [`.click()`](https://on.cypress.io/click) are now correct if the element being clicked is within an iframe. Fixes [#4347](https://github.com/cypress-io/cypress/issues/4347).
- We now allow [`.type()`](https://on.cypress.io/type) to be used on any DOM element. The element will receive all of the type events. Fixes [#2166](https://github.com/cypress-io/cypress/issues/2166) and [#3661](https://github.com/cypress-io/cypress/issues/3661).
- If a typeable element gains focus during [`.type()`](https://on.cypress.io/type), Cypress now continues typing into the newly focused element. Fixes [#2240](https://github.com/cypress-io/cypress/issues/2240).
- We now correctly borrow the property getter for `maxLength` when using [.type()](https://on.cypress.io/type) on an input. Fixes [#4587](https://github.com/cypress-io/cypress/issues/4587).
- We fixed an issue where `datetime-local` inputs would not have their `value` updated during [`.type()`](https://on.cypress.io/type). Fixes [#2613](https://github.com/cypress-io/cypress/issues/2613).
- [`.type()`](https://on.cypress.io/type) now allows you to type `-` into number inputs with text selection. Fixes [#4767](https://github.com/cypress-io/cypress/issues/4767).
- We now fire an `input` event when using [`.type()`](https://on.cypress.io/type) typing `{enter}` inserts a newline. Fixes [#4870](https://github.com/cypress-io/cypress/issues/4870).
- We no longer input text when non-`{shift}` modifier keys are typed in [`.type()`](https://on.cypress.io/type). Fixes [#5424](https://github.com/cypress-io/cypress/issues/5424).
- We now properly send the `code` property during keyboard events triggered during [`.type()`](https://on.cypress.io/type). Fixes [#3722](https://github.com/cypress-io/cypress/issues/3722)
- Cypress now sends `screenX` and `screenY` properties to events triggered using [`.trigger()`](https://on.cypress.io/trigger). Fixes [#3187](https://github.com/cypress-io/cypress/issues/3187).
- We fixed a bug where Cypress could not intercept traffic sent through [`cy.visit()`](https://on.cypress.io/visit) to IP addresses over HTTPS, leading to `ERR_SSL_VERSION_OR_CIPHER_MISMATCH` errors. Fixes [#771](https://github.com/cypress-io/cypress/issues/771).
- We fixed a bug introduced in [3.3.0](https://on.cypress.io/changelog#3-3-0) where some HTTPS sites failed to load during [`cy.visit()`](https://on.cypress.io/visit) and [`cy.request()`](https://on.cypress.io/request) with a "handshake failed" error. Fixes [#4394](https://github.com/cypress-io/cypress/issues/4394).
- We fixed a bug where ECC SSL Certificates were not supported during [`cy.visit()`](https://on.cypress.io/visit) that was introduced in [3.3.0](https://on.cypress.io/changelog#3-3-0). Fixes [#4368](https://github.com/cypress-io/cypress/issues/4368).
- We fixed an issue introduced in [3.4.0](https://on.cypress.io/changelog#3-4-0) that would cause the Selector Playground to not properly highlight the currently hovered element. Fixes [#4872](https://github.com/cypress-io/cypress/issues/4872).
- [`Cypress.env()`](https://on.cypress.io/env) now escapes `<script>` tags in the configuration file. Fixes [#4952](https://github.com/cypress-io/cypress/issues/4952).
- Cypress now properly handles converting responses of `content-type` `application/vnd.api+json` to JSON. Fixes [#5165](https://github.com/cypress-io/cypress/issues/5165).
- XHR responses in [`cy.route()`](https://on.cypress.io/route) that exceed 80kb in size no longer fail with an `ERR_EMPTY_RESPONSE` error. Fixes [#76](https://github.com/cypress-io/cypress/issues/76).
- Cypress no longer crashes with `dest.end` errors on Windows machines. Fixes [#2181](https://github.com/cypress-io/cypress/issues/2181).
- The `onFocus` event no longer incorrectly fires on hidden elements. This fixes an issue introduced in [3.3.2](https://on.cypress.io/changelog#3-3-2). Fixes [#4898](https://github.com/cypress-io/cypress/issues/4898).
- You can now call [`.click()`](https://on.cypress.io/click) on inputs or textareas that are `readonly`. This fixes an issue introduced in [3.4.1](https://on.cypress.io/changelog#3-4-1). Fixes [#4874](https://github.com/cypress-io/cypress/issues/4874).
- Cypress no longer crashes with a `"port" option should be a number or string` error when receiving an erroneous HTTP CONNECT. Fixes [#3250](https://github.com/cypress-io/cypress/issues/3250).
- Cypress tests now timeout if there are no Cypress commands enqueue and the `done()` callback is not called within the `commandTimeout`. Fixes [#1075](https://github.com/cypress-io/cypress/issues/1075), [#2478](https://github.com/cypress-io/cypress/issues/2478), [#3349](https://github.com/cypress-io/cypress/issues/3349), and [#4790](https://github.com/cypress-io/cypress/issues/4790).
- We fixed a bug where Cypress would exit with an `ENOTCONN` error at the end of a test run when using Node >12.11.0 on Windows OS. Fixes [#5241](https://github.com/cypress-io/cypress/issues/5241).
- We fixed a bug where the Chrome policy warnings introduced in [3.4.0](https://on.cypress.io/changelog#3-4-0) would not appear. Fixes [#4986](https://github.com/cypress-io/cypress/issues/4986).
- We improved the way that cookies are handled for Chrome browsers. This fixes an issue when parsing cookies that were set with a domain beginning with a `.` in Chrome 77. Fixes [#5142](https://github.com/cypress-io/cypress/issues/5142) and [#5206](https://github.com/cypress-io/cypress/issues/5206).
- We fixed a bug when visiting an application that does an HTTP request to a `.js` file containing Unicode transferred using `Content-Encoding: gzip` that could cause the JavaScript file to become corrupted. Fixes [#1746](https://github.com/cypress-io/cypress/issues/1746).
- We now normalize the Cypress cache folder to resolve in the current folder and not with respect to the `node_modules/cypress` folder. Fixes [#2364](https://github.com/cypress-io/cypress/issues/2364).
**Misc:**
- Cypress now displays a more precise error message when checking an element's visibility if an element is detached from the DOM. Addresses [#4946](https://github.com/cypress-io/cypress/issues/4946).
- We increased the timeout to wait for Xvfb to start from 5 seconds to 30 seconds. This should resolve some issues where the error `Could not start Xvfb` was being thrown because Xvfb could not start within the allowed time. Addresses [#5110](https://github.com/cypress-io/cypress/issues/5110).
- We now warn when using `cypress run` from the binary directly (not from an npm module) since this is not its intended use. Addresses [#1573](https://github.com/cypress-io/cypress/issues/1573).
- We now warn on [`cy.visit('file://...)`](https://on.cypress.io/visit) to explain that this url format is not supported and suggest visiting a relative HTML file. Addresses [#4452](https://github.com/cypress-io/cypress/issues/4452).
- Setting the reserved `CYPRESS_ENV` environment variable will now throw an error. Addresses [#1621](https://github.com/cypress-io/cypress/issues/1621).
- We now throw a better error when passing in an Object to the [`browser`](https://on.cypress.io/browser-launch-api) argument of the Browser Launch API explaining that a String is expected instead. Addresses [#4966](https://github.com/cypress-io/cypress/issues/4966).
- An error will now be thrown if an invalid `name` or `value` is supplied to [`cy.setCookie()`](https://on.cypress.io/setcookie), matching the RFC 6265 compliant validation of cookie names and values. Addresses [#5206](https://github.com/cypress-io/cypress/issues/5206).
- Passing an invalid type to the 2nd argument of [`cy.get()`](https://on.cypress.io/get) now throws an error explaining that an `options` Object is expected. Addresses [#2953](https://github.com/cypress-io/cypress/issues/2953).
- We now throw a more helpful error message during [`cy.screenshot()`](https://on.cypress.io/screenshot) that would result in a screenshot with 0 width or height. Addresses [#5149](https://github.com/cypress-io/cypress/issues/5149).
- Stdout printed during `cypress run` no longer truncates text such a filenames and instead wraps the text to fit within the width of the terminal. Addresses [#4977](https://github.com/cypress-io/cypress/issues/4977).
- We now display up to 2,000 characters of HTTP property values within error messages during [`cy.request()`](https://on.cypress.io/request) errors. Addresses [#3145](https://github.com/cypress-io/cypress/issues/3145).
- Cypress now always considers `localhost` to be in `NO_PROXY`. To make Cypress send traffic for `localhost` through the proxy, you will now have to pass `<-loopback>` in `NO_PROXY`. Addresses [#4780](https://github.com/cypress-io/cypress/issues/4780).
- We changed the way cookies are set in [`cy.visit()`](https://on.cypress.io/visit) to more closely match the browser's behavior when setting cookies, particularly when using `fetch` with cookies. Addresses [#4433](https://github.com/cypress-io/cypress/issues/4433).
- We've added more flags to send to Chrome upon launch that should help with issues encountered during browser automation including `--disable-backgrounding-occluded-window`, `--disable-breakpad`, `--disable-ipc-flooding-protection`, `--password-store=basic`, and `--use-mock-keychain`. Addresses [#5132](https://github.com/cypress-io/cypress/issues/5132) and [#3633](https://github.com/cypress-io/cypress/issues/3633).
- Scrolling the specs list now only scrolls the list of spec files and no longer scrolls the search and filter bar. Addresses [#4904](https://github.com/cypress-io/cypress/issues/4904).
- We fixed some layout issues within the Test Runner that were introduced in [3.4.1](https://on.cypress.io/changelog#3-4-1). Addresses [#4888](https://github.com/cypress-io/cypress/issues/4888), [#4912](https://github.com/cypress-io/cypress/issues/4912), and [#4959](https://github.com/cypress-io/cypress/issues/4959).
- The counter badge for spies and stubs no longer appears visually cut off. Fixes [#4822](https://github.com/cypress-io/cypress/issues/4822).
- TypeScript 3.6.2 no longer errors due to outdated jQuery types. Addresses [#5065](https://github.com/cypress-io/cypress/issues/5065).
- We updated types for [`Cypress.Commands.overwrite()`](https://on.cypress.io/custom-commands) to not allow an `options` object as an argument. Addresses [#5341](https://github.com/cypress-io/cypress/issues/5341).
- We added `failures` and `message` types when a run fails using the [Module API](https://on.cypress.io/module-api). Addresses [#5335](https://github.com/cypress-io/cypress/issues/5335).
- We're continuing to make process in converting our codebase from CoffeeScript to JavaScript. Addresses [#2690](https://github.com/cypress-io/cypress/issues/2690) in [#4869](https://github.com/cypress-io/cypress/pull/4869), [#4906](https://github.com/cypress-io/cypress/pull/4906), [#5096](https://github.com/cypress-io/cypress/pull/5096), [#5107](https://github.com/cypress-io/cypress/pull/5107), [#5156](https://github.com/cypress-io/cypress/pull/5156), [#5173](https://github.com/cypress-io/cypress/pull/5173), and [#5352](https://github.com/cypress-io/cypress/pull/5352).
**Documentation Changes:**
- Added a [`.rightclick()`](https://on.cypress.io/rightclick) doc.
- Added a [Webinars](https://on.cypress.io/webinars-media) doc containing videos of all of the official Cypress webcasts.
- Updated the [`.dblclick()`](https://on.cypress.io/dblclick) doc to include new `position`, `x`, and `y` arguments plus `force` and `multiple` options.
- Added the `--config-file` argument to [Command Line](https://on.cypress.io/command-line) and [Module API](https://on.cypress.io/module-api) doc.
- Added the `nodeVersion` argument to [Configuration](https://on.cypress.io/configuration) doc and mentioned its uses in the [Plugins Guide](https://on.cypress.io/plugins-guide) and [Writing a Plugin](https://on.cypress.io/writing-a-plugin) doc.
- Updated all docs to mention 'configuration file' instead of static `cypress.json` file since this is not configurable via a `--config-file` argument.
- Added `qs` option to [`cy.visit()`](https://on.cypress.io/visit#Arguments) with examples.
- Added `padding` option to [`cy.screenshot()`](https://on.cypress.io/screenshot) with examples.
- Updated the [`cy.viewport()`](https://on.cypress.io/viewport) doc to have a max viewport size of `4000`.
- Added newly supported viewport sizes to the [`cy.viewport()`](https://on.cypress.io/viewport) doc.
- Documented new keyboard shortcuts in the [Test Runner](https://on.cypress.io/test-runner) doc.
- Added a new section on troubleshooting problems with Xvfb to the [Continuous Integration](https://on.cypress.io/continuous-integration#Xvfb) doc.
- Added a section to our [Debugging](https://on.cypress.io/debugging#Cypress-fiddle) doc about our `cypress-fiddle` plugin used for playing around with small test cases.
- Added a section to our [Debugging](https://on.cypress.io/debugging#Patch-Cypress) doc explaining how to patch an installed version of Cypress.
- Mention not needing to decode portions of the `url` in the [`cy.route()`](https://on.cypress.io/route) doc.
- Mention that the `file://` prefix is not supported in the [`cy.visit()`](https://on.cypress.io/visit) doc.
- Add a note about when passing `<-loopback>` in `NO_PROXY` is necessary in the Proxy Configuration doc.
- Updated our Dashboard docs to include screenshots containing our new Dashboard navigation design.
- We have some newly translated documentation in Portuguese. If you'd like to help in translating more, please open a pull request in our [documentation repo](https://github.com/cypress-io/cypress-documentation).
**Dependency Updates**
- Upgraded Chrome browser version used during `cypress run` and when selecting Electron browser in `cypress open` from `61` to `73`. Addressed in [#4720](https://github.com/cypress-io/cypress/pull/4720).
- Upgraded `electron` from `2.0.18` to `5.0.10`. Addressed in [#4720](https://github.com/cypress-io/cypress/pull/4720).
- Upgraded `node` from `8.9.3` to `12.0.0`. Addressed in [#4720](https://github.com/cypress-io/cypress/pull/4720).
- Upgaded `jquery` from `2.2.4` to `3.1.1`. Addressed in [#1229](https://github.com/cypress-io/cypress/pull/1229).
- Upgraded `sanitize-filename` from `1.6.1` to `1.6.3`. Addressed in [#5216](https://github.com/cypress-io/cypress/pull/5216).
- Upgraded `@cypress/get-windows-proxy` from `1.5.4` to `1.6.0`. Addressed in [#5108](https://github.com/cypress-io/cypress/pull/5108).