Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: cypress v13.17.0 release #6052

Merged
merged 6 commits into from
Dec 17, 2024
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions docs/app/references/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,28 @@
title: Changelog
---

## 13.17.0

_Released 12/17/2024_

**Features:**

- Added official support for the [Google Chrome for Testing](https://github.com/GoogleChromeLabs/chrome-for-testing) browser. Assuming the browser is in a location where it can be [auto-detected](https://on.cypress.io/troubleshooting-launching-browsers), it can be launched by providing the `--browser chrome-for-testing` option. If it can't be auto-detected, the path to the browser can also be provided. Previously [customizing the available browsers](https://on.cypress.io/customize-browsers) was required. Addresses [#28123](https://github.com/cypress-io/cypress/issues/28123) and [#28554](https://github.com/cypress-io/cypress/issues/28554).
mschile marked this conversation as resolved.
Show resolved Hide resolved

**Bugfixes:**

- Fixed an issue where targets may hang if `Network.enable` is not implemented for the target. Addresses [#29876](https://github.com/cypress-io/cypress/issues/29876).
- Updated Firefox `userChrome.css` to correctly hide the toolbox during headless mode. Addresses [#30721](https://github.com/cypress-io/cypress/issues/30721).
- Fixed an issue loading the `cypress.config.ts` file with Node.js version `22.12.0` if it is loaded as an ESM. Addresses [#30715](https://github.com/cypress-io/cypress/issues/30715).

**Misc:**

- Removed a comment from the scaffolded `supportFile` for component tests around CommonJS syntax. Addresses [#23287](https://github.com/cypress-io/cypress/issues/23287).

**Dependency Updates:**

- Updated `chai` from `4.2.0` to `4.5.0`. Addressed in [#30737](https://github.com/cypress-io/cypress/pull/30737).

## 13.16.1

_Released 12/04/2024_
Expand Down
20 changes: 13 additions & 7 deletions docs/app/references/launching-browsers.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ using number of browsers including:
- [Chrome](https://www.google.com/chrome/)
- [Chrome Beta](https://www.google.com/chrome/beta/)
- [Chrome Canary](https://www.google.com/chrome/canary/)
- [Chrome for Testing](https://github.com/GoogleChromeLabs/chrome-for-testing/)
- [Chromium](https://www.chromium.org/Home)
- [Edge](https://www.microsoft.com/edge)
- [Edge Beta](https://www.microsoftedgeinsider.com/download)
Expand Down Expand Up @@ -63,7 +64,7 @@ Cypress supports the browser versions below:
The Chrome browser is evergreen - meaning it will automatically update itself,
sometimes causing a breaking change in your automated tests.
You can use the information in [Download Chromium](https://on.cypress.io/chromium-downloads) to download a
specific released version of Chromium for every platform.
specific released version of Chrome for Testing or Chromium for every platform.

### Electron Browser

Expand Down Expand Up @@ -123,6 +124,12 @@ Or Chrome Canary:
cypress run --browser chrome:canary
```

Or Chrome for Testing:

```shell
cypress run --browser chrome-for-testing
```

### Edge Browsers

Microsoft Edge-family (Chromium-based) browsers are supported by Cypress.
Expand Down Expand Up @@ -268,11 +275,11 @@ list of browsers you want available for selection during `cypress open`.
// name: 'chrome',
// channel: 'canary',
// family: 'chromium',
// displayName: 'Canary',
// version: '80.0.3966.0',
// displayName: 'Chrome Canary',
// version: '133.0.6890.0',
// path:
// '/Applications/Canary.app/Contents/MacOS/Canary',
// majorVersion: 80
// '/Applications/Google Chrome Canary.app/Contents/MacOS/Canary',
// majorVersion: 133
// }
return {
browsers: config.browsers.filter(
Expand Down Expand Up @@ -350,8 +357,7 @@ in the **Settings** tab.

### Unsupported Browsers

Some browsers such as Safari and Internet Explorer are not currently supported.
Support for more browsers is on our roadmap.
Some browsers such as Internet Explorer are not currently supported.

## Browser Environment

Expand Down
76 changes: 56 additions & 20 deletions docs/app/references/troubleshooting.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -415,58 +415,94 @@ On Mac, Cypress attempts to find installed browsers by their bundle identifier.
If this does not succeed, it will fall back to the Linux browser detection
method.

| Browser Name | Expected Bundle Identifier | Expected Executable |
| --------------- | -------------------------- | ------------------------------------- |
| `chrome` | `com.google.Chrome` | `Contents/MacOS/Google Chrome` |
| `chromium` | `org.chromium.Chromium` | `Contents/MacOS/Chromium` |
| `chrome:canary` | `com.google.Chrome.canary` | `Contents/MacOS/Google Chrome Canary` |
| Browser Name | Expected Bundle Identifier | Expected Executable Path |
| -------------------- | ------------------------------------- | -------------------------------------------------------------------------------------- |
| `chrome` | `com.google.Chrome` | `/Applications/Google Chrome.app/Contents/MacOS/Google Chrome` |
| `chrome:beta` | `com.google.Chrome.beta` | `/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta` |
| `chrome:canary` | `com.google.Chrome.canary` | `/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary` |
| `chrome-for-testing` | `com.google.chrome.for.testing` | `/Applications/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing` |
| `chromium` | `org.chromium.Chromium` | `/Applications/Chromium.app/Contents/MacOS/Chromium` |
| `firefox` | `org.mozilla.firefox` | `/Applications/Firefox.app/Contents/MacOS/firefox` |
| `firefox:dev` | `org.mozilla.firefoxdeveloperedition` | `/Applications/Firefox Developer Edition.app/Contents/MacOS/firefox` |
| `firefox:nightly` | `org.mozilla.nightly` | `/Applications/Firefox Nightly.app/Contents/MacOS/firefox` |
| `edge` | `com.microsoft.Edge` | `/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge` |
| `edge:beta` | `com.microsoft.Edge.Beta` | `/Applications/Microsoft Edge Beta.app/Contents/MacOS/Microsoft Edge Beta` |
| `edge:canary` | `com.microsoft.Edge.Canary` | `/Applications/Microsoft Edge Canary.app/Contents/MacOS/Microsoft Edge Canary` |
| `edge:dev` | `com.microsoft.Edge.Dev` | `/Applications/Microsoft Edge Dev.app/Contents/MacOS/Microsoft Edge Dev` |

For the current list, see
[packages/launcher](https://github.com/cypress-io/cypress/blob/develop/packages/launcher/lib/darwin/index.ts)
files.

**Note:** `chrome-for-testing` and `chromium` typically require the downloaded application file to be manually moved to the `/Applications` folder to be auto-detected.

#### Linux

On Linux, Cypress scans your `PATH` for a number of different binary names. If
the browser you are trying to use does not exist under one of the expected
binary names, Cypress will not be able to find it.

| Browser Name | Expected Binary Name(s) |
| --------------- | ---------------------------------------------------- |
| `chrome` | `google-chrome`, `chrome`, or `google-chrome-stable` |
| `chromium` | `chromium-browser` or `chromium` |
| `chrome:canary` | `google-chrome-canary` |
| Browser Name | Expected Binary Name(s) |
| -------------------- | ---------------------------------------------------- |
| `chrome` | `google-chrome`, `chrome`, or `google-chrome-stable` |
| `chrome:beta` | `google-chrome-beta` |
| `chrome:canary` | `google-chrome-canary` |
| `chrome-for-testing` | `chrome` |
| `chromium` | `chromium-browser` or `chromium` |
| `firefox` | `firefox` |
| `firefox:dev` | `firefox-developer-edition`, `firefox` |
| `firefox:nightly` | `firefox-nightly`, `firefox-trunk` |
| `edge` | `edge`, `microsoft-edge` |
| `edge:beta` | `edge-beta`, `microsoft-edge-beta` |
| `edge:canary` | `edge-canary`, `microsoft-edge-canary` |
| `edge:dev` | `edge-dev`, `microsoft-edge-dev` |

These binary names should work for most Linux distributions. If your
distribution packages browsers under a different binary name, you can add a
symlink using the expected binary name so that Cypress can detect it.

For example, if your distribution packages Google Chrome as `chrome`, you could
add a symlink to `google-chrome` like this:
For example, to create a symlink for the `chrome-for-testing` browser:

```shell
sudo ln `which chrome` /usr/local/bin/google-chrome
sudo ln -s /path/to/binary/chrome /usr/local/bin/chrome
```

**Note:** `chrome-for-testing` and `chromium` typically require the binary to be manually added to the `PATH` or a symlink created to be auto-detected.

#### Windows

On Windows, Cypress scans the following locations to try to find each browser:

| Browser Name | Expected Path |
| --------------- | ------------------------------------------------------------- |
| `chrome` | `C:/Program Files (x86)/Google/Chrome/Application/chrome.exe` |
| `chromium` | `C:/Program Files (x86)/Google/chrome-win32/chrome.exe` |
| `chrome:canary` | `%APPDATA%/../Local/Google/Chrome SxS/Application/chrome.exe` |
| Browser Name | Expected Executable Path |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `chrome` | `C:/Program Files (x86)/Google/Chrome/Application/chrome.exe`, `C:/Program Files/Google/Chrome/Application/chrome.exe` |
| `chrome:beta` | `C:/Program Files (x86)/Google/Chrome Beta/Application/chrome.exe`, `C:/Program Files/Google/Chrome Beta/Application/chrome.exe` |
| `chrome:canary` | `%APPDATA%/Local/Google/Chrome SxS/Application/chrome.exe` |
| `chrome-for-testing` | `C:/Program Files/Google/Chrome for Testing/chrome.exe`, `C:/Program Files (x86)/Google/Chrome for Testing/chrome.exe` |
| `chromium` | `C:/Program Files (x86)/Google/chrome-win32/chrome.exe`, `C:/Program Files/Google/chrome-win/chrome.exe`, `C:/Program Files/Google/Chromium/chrome.exe`, `C:/Program Files (x86)/Google/Chromium/chrome.exe` |
| `firefox` | `C:/Program Files/Mozilla Firefox/firefox.exe`, `C:/Program Files (x86)/Mozilla Firefox/firefox.exe`, `%APPDATA%/Local/Mozilla Firefox/firefox.exe` |
| `firefox:dev` | `C:/Program Files/Firefox Developer Edition/firefox.exe`, `C:/Program Files (x86)/Firefox Developer Edition/firefox.exe`, `%APPDATA%/Local/Firefox Developer Edition/firefox.exe` |
| `firefox:nightly` | `C:/Program Files/Firefox Nightly/firefox.exe`, `C:/Program Files (x86)/Firefox Nightly/firefox.exe`, `%APPDATA%/Local/Firefox Nightly/firefox.exe` |
| `edge` | `C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe` |
| `edge:beta` | `C:/Program Files (x86)/Microsoft/Edge Beta/Application/msedge.exe` |
| `edge:canary` | `%APPDATA%/Local/Microsoft/Edge SxS/Application/msedge.exe` |
| `edge:dev` | `C:/Program Files (x86)/Microsoft/Edge Dev/Application/msedge.exe` |

For the current list, see
[packages/launcher](https://github.com/cypress-io/cypress/blob/develop/packages/launcher/lib/windows/index.ts)
files.

To make a browser installed at a different path be auto-detected, create a
symbolic link using `mklink` in the location that Cypress expects to find your
symlink using `mklink` in the location that Cypress expects to find your
browser.

[Read more about creating symbolic links on Windows](https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/)
For example, to create a symlink for the `chrome-for-testing` browser:

```shell
mklink /d "C:\Program Files\Google\Chrome for Testing" "C:\path\to\chrome\executable\folder"
```

**Note:** `chrome-for-testing` and `chromium` typically require the downloaded folder to either be moved and renamed to the location mentioned above or a symlink created as described above to be auto-detected.

Occasionally Cypress will have issues detecting the type of browser in Windows
environments. To manually detect the browser type, append the browser type to
Expand Down