Run Cypress against a chosen installed browser with npx cypress run --browser chrome or npx cypress run --browser firefox. In CI, provision the browser there and run the suite in separate browser jobs or use a deliberate mix of full-suite and critical-path coverage. Chrome-family browsers and Firefox are supported; WebKit, the engine used by Safari, is experimental.
Select a browser locally
Cypress detects supported browsers installed on the machine. In run mode, choose one with --browser:
As an Amazon Associate I earn from qualifying purchases.
npx cypress run --browser chrome
npx cypress run --browser firefox
Other documented choices include Chromium, Edge, Chrome for Testing, and Firefox variants. Check the Cypress launching guide for the exact browser names and availability for your installed Cypress version: Launching browsers.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsTo run interactively, open Cypress and select a browser in the browser selector. In headless run mode, Cypress launches browsers without a visible window by default; add --headed when you need to watch the browser or investigate a failure.
#1 Best Overall
Use a browser Cypress does not detect
If the browser is installed at a nonstandard location and Cypress does not find it automatically, pass its binary path to --browser:
npx cypress run --browser "/path/to/browser-binary"
Replace the example path with the actual executable path for the environment. The launching guide also describes channel selection; non-stable browser channels can be specified with a colon suffix. Use the channel syntax documented for your browser and Cypress version rather than assuming all browser distributions use the same name.
Add repeatable npm shortcuts
For a project with a package.json, define scripts so developers can run consistent commands:
{
"scripts": {
"cy:run:chrome": "cypress run --browser chrome",
"cy:run:firefox": "cypress run --browser firefox"
}
}
Then run npm run cy:run:chrome or npm run cy:run:firefox. These scripts are optional conveniences; Cypress still needs the selected browser installed wherever the command runs.
Rank #2
Run browser coverage in CI
Install Cypress and provision the browser in the CI environment; a browser installed on a developer’s laptop is not automatically available to a CI worker. Cypress documents browser provisioning through its Docker images. See the Cross Browser Testing guide for CI job and Cypress Cloud recording/grouping examples.
Run separate jobs by browser
A straightforward approach is one CI job per browser. Each job invokes the same suite with its browser flag, for example:
npx cypress run --browser chrome
npx cypress run --browser firefox
Separate jobs make it clear which browser produced a failure and allow the jobs to run independently if the CI system supports parallel jobs. They also require each job’s environment to have the browser it selects.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Choose a coverage mix
Running every spec in every browser on every change is not the only reasonable strategy. Cypress recommends balancing confidence against test time and infrastructure cost. Depending on the application’s users and browser-sensitive behavior, a team might run the full suite in one browser and critical-path specs in another, then schedule broader browser coverage for a selected branch or release point.
Rank #3
- Consider the application’s user base and the browser-engine differences relevant to its features.
- Compare the additional confidence from full-suite coverage with CI duration and infrastructure cost.
- Decide how browser and version reproducibility will be maintained.
- Treat WebKit coverage differently while its Cypress support remains experimental.
These are decision factors, not universal rules for which browser deserves the most tests. Cypress Cloud recording and grouping are optional ways to organize CI runs; they are not prerequisites for cross-browser testing.
Include or exclude browser-specific tests
Most tests should remain shared across browsers when they validate shared application behavior. For genuine browser-specific behavior, Cypress supports browser-based inclusion and exclusion through the test or suite browser configuration. Its examples include a Chrome-only clipboard test, a Firefox-only test, and excluding a test in Chrome with !chrome. Matchers follow the arguments accepted by Cypress.isBrowser(). Details and examples are in Writing and organizing tests and the cross-browser guide.
Use these filters to isolate behavior that truly differs by browser, not to hide a shared regression by routinely skipping the failing browser.
Know what browser support means
Chrome, Chromium, Edge, and Firefox
Cypress documents support for Chrome-family browsers and Firefox, and its launch guide lists Chrome, Chrome for Testing, Chromium, Edge, and Firefox variants. Cypress states that it officially supports the latest three major versions of Chrome, Firefox, and Edge. This is a moving support window, so check the launch guide against the Cypress version and browser version your project actually uses: Launching browsers.
Rank #4
Firefox launch floors have also changed across Cypress releases. The current launch documentation identifies Firefox 140 as the floor, while Cypress 15.0.0 through 15.18.1 documented a floor of Firefox 135. Do not treat either number as timeless: verify the current documentation for the Cypress release in your project before pinning a CI image or browser.
WebKit and Safari-engine testing
WebKit support is experimental. Cypress documents enabling experimentalWebKitSupport, installing playwright-webkit, and installing additional Linux dependencies where applicable. The guide also lists known limitations, including that cy.origin() is not supported. WebKit testing exercises Safari’s browser engine; it is not a guarantee that behavior will be identical to native Safari in every environment.
Electron
Cypress marks Electron as deprecated as a test browser and says it will be removed in a future Cypress version. Set --browser explicitly in run commands if you want to avoid depending on Cypress’s bundled default browser.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Version-specific network behavior
The configuration reference says that, as of Cypress 16, Chrome, Chromium, and Edge use native browser network interception, while Firefox and WebKit retain the legacy network path. This distinction matters if your tests depend on network interception; verify the configuration documentation for the installed Cypress version before diagnosing browser-specific request behavior.
Best Value
Troubleshoot common failures
- “Browser not found” or launch fails: Install or provision the requested browser in the same environment running Cypress. For an installed but undetected binary, pass its path with
--browser. - CI passes locally but cannot launch a browser: Check the CI image or worker setup. The browser must exist in CI; local installations are not shared with remote workers.
- A Firefox version will not launch: Check the Cypress release’s current Firefox floor in the launching guide. The supported minimum has changed across releases.
- A WebKit test fails on a missing dependency or unsupported command: Confirm the experimental feature is enabled and its dependencies are installed, then check the documented limitations. In particular,
cy.origin()is not supported in the documented WebKit setup. - A failure occurs only in headless mode: Re-run with
--headedto inspect browser behavior visually, then compare the relevant browser and CI environment. - Network interception differs between browsers: Check whether the project uses Cypress 16 or later and account for the documented native-versus-legacy network paths.
- A non-stable browser channel is not selected as expected: Use the channel syntax specified in the launching guide for that browser rather than relying on an assumed channel label.
Or skip the browser setup
For capturing a website as an image or PDF rather than running Cypress tests, ScreenshotNeo offers a one-request screenshot API. It is not a Cypress test runner and does not replace browser-based application tests. A cURL example is:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo documentation for API details. It accepts cookie and consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; those steps can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing status in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for AI agents. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month—no card required.
Frequently Asked Questions
Can Cypress run Chrome and Firefox in one command?
The documented workflow selects a browser per run with --browser; invoke Cypress separately for each browser or run separate CI jobs.
Recommended Free Tools
Does Cypress cross-browser testing require Cypress Cloud?
No. Cypress Cloud recording and grouping are optional CI organization workflows, not requirements for running the suite in multiple browsers.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




