October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk7 min

How to Run Cypress Cross-Browser Tests in Chrome, Firefox, Edge, and WebKit

Use Cypress’s --browser option to run your suite in installed browsers. Learn the support boundaries, WebKit setup, practical CI coverage, and common fixes.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Run Cypress once for each installed browser with npx cypress run --browser <browser>. Cypress supports Chrome-family browsers, Firefox, and experimental WebKit; WebKit is not the Safari application. For continuous integration (CI), install the browsers in the job environment and choose full-suite or risk-focused coverage for each browser based on your product’s support commitments and available run time.

Which browsers can Cypress test?

Cypress documents support for Chrome-family browsers—including Chrome, Chromium, and Microsoft Edge—and Firefox. It also offers experimental support for WebKit, the browser engine used by Safari. A browser must be installed on the machine where Cypress runs.

As an Amazon Associate I earn from qualifying purchases.

Browser family or option What to know
Chrome Supported. Cypress recommends Chrome for Testing when you need a versioned browser binary that does not auto-update.
Chromium Supported; Cypress can use a detected installation or a specified binary path.
Microsoft Edge Supported. Cypress’s documented official support policy covers the latest three major versions of Edge.
Firefox Supported. Cypress’s documented official support policy covers the latest three major versions. Its browser reference currently says it cannot launch Firefox earlier than version 140 because older releases have incomplete WebDriver BiDi implementations; check the current reference before pinning a version.
WebKit Experimental. This tests the WebKit engine, not Safari itself. It requires enabling the experimental integration and installing Playwright’s WebKit browser. Linux may need additional dependencies.
Electron Cypress marks Electron as deprecated as a test browser and says it will be removed in a future Cypress version. Prefer explicitly selecting Chrome or another installed browser.

Support details can change. Consult the Cypress browser launch reference for the current version policy, detected browsers, and WebKit limitations. In particular, Cypress documents that WebKit does not support cy.origin() or Test Replay and may differ in other ways. A WebKit pass is useful engine coverage, but it is not proof of full Safari equivalence.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Run the same tests in multiple browsers locally

Install the browsers you want to test, then run Cypress separately for each one. These commands use the standard identifiers:

npx cypress run --browser chrome
npx cypress run --browser firefox
npx cypress run --browser edge

Use chromium for a Chromium installation. Cypress also documents browser channel variants such as beta, canary, and developer builds for several browser families. The selected browser must be available on the machine running the command. See the Cypress CLI reference for the --browser option.

When Cypress does not detect a browser

If you have a custom or portable browser installation, pass the path to its executable instead of an identifier. For example, on a Linux system where Chromium is at /usr/bin/chromium:

npx cypress open --browser /usr/bin/chromium

Use the corresponding binary path for your operating system and installation. For a test run rather than the interactive runner, use npx cypress run --browser /path/to/browser.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the interactive runner or see the browser

Start Cypress with npx cypress open and choose a detected browser from the browser dropdown. For headed command-line debugging, add --headed, for example npx cypress run --browser chrome --headed. Command-line runs are headless by default. Cypress launches a separate testing profile, so it does not reuse your regular browsing cookies, history, or extensions.

Add convenient project scripts

For repeated runs, define aliases in package.json:

{
  "scripts": {
    "cy:run:chrome": "cypress run --browser chrome",
    "cy:run:firefox": "cypress run --browser firefox",
    "cy:run:edge": "cypress run --browser edge"
  }
}

Then run one with your package manager, such as npm run cy:run:firefox. Add only the browsers your project actually provisions.

Enable experimental WebKit testing

WebKit coverage takes extra setup and has documented differences from other Cypress browsers. Install the playwright-webkit package, enable the experimental flag in the Cypress configuration, and then select WebKit when launching the tests.

  1. Install the browser package as a development dependency: npm install --save-dev playwright-webkit.

    Free tools Windows power users keep installed

    One-click scans. No signup required.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  2. In cypress.config.js, enable WebKit:

    const { defineConfig } = require('cypress')
    
    module.exports = defineConfig({
      experimentalWebKitSupport: true,
      e2e: {
        setupNodeEvents(on, config) {
          // Register any project-specific Node event listeners here.
          return config
        }
      }
    })
  3. Run the suite using the WebKit browser identifier recognized by your Cypress installation, for example npx cypress run --browser webkit. If it is not detected, check the current Cypress WebKit setup instructions and your installed package.

On Linux, missing system libraries can prevent WebKit from launching. Install the dependencies required by the current Cypress and Playwright instructions for your distribution. Before making WebKit a release gate, review Cypress’s documented limitations, including the lack of cy.origin() and Test Replay support.

Choose a practical CI browser matrix

Multi-browser CI is a trade-off among confidence, elapsed test time, and infrastructure capacity. Cypress’s cross-browser guide gives one useful pattern: run the full suite in Chrome and a critical-path subset in Firefox. That is an example, not a universal Cypress requirement.

Start with browser coverage that matches your support promise

  1. List the browsers and versions your product commits to support.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  2. Provision those browsers in CI, or use a maintained Cypress Docker image that includes the browsers you need. Verify the image’s browser contents rather than assuming every image includes every browser.

  3. Run the broad suite in the browser that gives your team the most useful regular feedback.

  4. Run critical user flows in additional supported browsers. Expand to the full suite where browser-specific risk, release policy, or observed defects justify the extra time and capacity.

  5. Align browser versions and operating-system coverage with the environments you claim to support. Consider a pinned Chrome for Testing binary when reproducibility matters.

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Cypress’s cross-browser testing guide shows browser-specific groups recorded to Cypress Cloud. If your project records runs there, you can name groups so results are distinguishable:

npx cypress run --browser chrome --record --group "Chrome full suite"
npx cypress run --browser firefox --record --group "Firefox critical path"

Recording requires a configured Cypress Cloud project and its recording key. Without that setup, omit --record and --group. Cypress’s CircleCI guide describes provisioning browsers and geckodriver in a CI environment; its Real World App example also illustrates parallel execution across machines, browsers, device sizes, and operating systems.

Keep shared tests shared; isolate real browser differences

Most application behavior should be covered by the same tests across browsers. Avoid duplicating entire suites just to select another browser: run the shared tests once per browser, and add browser-specific handling only when a real behavior or capability requires it.

Cypress supports browser-specific test or suite configuration to include or exclude tests for selected browsers. You can also use Cypress.isBrowser() to branch on the browser when needed. See the cross-browser guide and the Cypress.isBrowser API reference for the documented options.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Change launch settings only for a concrete need

For lower-level setup, register before:browser:launch from setupNodeEvents. Cypress allows the hook to modify launch arguments, preferences, environment, or extensions. For example, the shape of a configuration hook is:

const { defineConfig } = require('cypress')

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {
      on('before:browser:launch', (browser, launchOptions) => {
        // Add a launch argument only when your test environment requires it.
        return launchOptions
      })
      return config
    }
  }
})

Do not add browser flags speculatively; they can change behavior and make runs harder to reproduce. See the browser launch API reference for the hook’s supported controls.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot common cross-browser run failures

Or skip the browser setup

If your goal is to capture a website rather than test your application in real browser engines, ScreenshotNeo is a website screenshot API and MCP server. One GET request returns a PNG, JPEG, WebP, or PDF. For example, with cURL:

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 API documentation for parameters. It accepts cookie or consent banners as a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; each step can be disabled. Bot checks, blank pages, failed loads, timeouts, and cache hits cost nothing, and response headers report the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000.

Sign up for ScreenshotNeo’s free plan.

Frequently Asked Questions

Does Cypress test Safari?

Cypress offers experimental WebKit-engine testing, not testing in the Safari application. WebKit coverage should not be treated as full Safari equivalence.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can I run Chrome, Firefox, and Edge tests in one Cypress command?

The documented approach is to invoke Cypress once per browser, using a separate --browser selection for each run.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.