Recommended Free Tools
Cypress can run tests in WebKit, Safari’s browser engine, using an experimental feature. Enable experimentalWebKitSupport, install playwright-webkit, install the required system dependencies on Linux, then run Cypress with --browser webkit. This runs WebKit—not Apple Safari—and some Cypress features are unsupported or behave differently.
Enable WebKit support in Cypress
WebKit support is experimental and disabled by default. In the Cypress configuration file your project already uses, add experimentalWebKitSupport: true to the existing configuration. Do not replace other project settings.
As an Amazon Associate I earn from qualifying purchases.
const { defineConfig } = require('cypress')
module.exports = defineConfig({
experimentalWebKitSupport: true,
})
If your configuration already has options, include the flag alongside them:
const { defineConfig } = require('cypress')
module.exports = defineConfig({
e2e: {
// Keep your existing e2e settings here.
},
experimentalWebKitSupport: true,
})
Use the configuration format and filename already established in your project. Cypress documents the flag and its default in its experiments reference.
Install WebKit and run the tests
-
From the project root, install the WebKit package as a development dependency:
npm install playwright-webkit --save-devCypress should already be installed in the project. Cypress’s WebKit guide describes the experiment as using Playwright WebKit.
-
On Linux, install WebKit’s system dependencies:
npx playwright install-deps webkitThis does not replace Cypress’s own Linux system prerequisites. Follow Cypress’s installation requirements for your Linux distribution and environment.
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 your suite with WebKit selected:
npx cypress run --browser webkit
The selected browser must be installed in the local or CI environment. For interactive use, run npx cypress open and choose WebKit from the browser selector once Cypress detects it. To record a run to Cypress Cloud, Cypress also documents npx cypress run --browser webkit --record; use that only when the recording workflow is intended and configured.
Run WebKit tests in CI
Set up CI with the same ingredients as a local run: the project dependencies, playwright-webkit, the operating-system dependencies required for WebKit on Linux, and Cypress’s own prerequisites. Then invoke Cypress with --browser webkit. The browser must be available in the CI environment; installing only the Cypress package does not select or provide WebKit.
Because this is experimental support, confirm that your chosen Cypress, Node.js, operating-system and package versions work together against the live requirements for your environment. The documentation reviewed does not establish a complete compatibility matrix or specific version pins.
Rank #4
Know what WebKit coverage does—and does not—mean
Cypress describes WebKit as Safari’s browser engine, and its experimental integration can help exercise WebKit behavior on Windows, Linux or CI environments where Apple Safari automation is not available. It does not run Apple Safari itself, so treat the result as WebKit coverage rather than proof of identical behavior in Safari.
Cypress lists these limitations and differences for experimental WebKit support:
Best Value
cy.origin()is not supported.- Test Replay is not supported.
cy.intercept()with theforceNetworkErroroption is disabled.- Some
cy.type()event properties and arrow-key behavior differ. - When
experimentalSingleTabRunModeis enabled with video recording, only the first spec’s video is recorded. - Stack traces may omit function names or location information.
The Cypress configuration reference also says injectDocumentDomain must be true when using experimental WebKit because cy.origin() is unsupported. This setting has compatibility caveats. If your tests cross subdomains, review the current configuration documentation and test your application rather than assuming the setting is a transparent workaround. See Cypress’s configuration and experiment guidance alongside its configuration reference.
Troubleshoot common setup failures
- Cypress does not offer WebKit: Confirm
experimentalWebKitSupport: trueis in the active Cypress configuration, and thatplaywright-webkitis installed in the project. Restart the Cypress process after changing configuration or dependencies. - WebKit fails to launch on Linux: Run
npx playwright install-deps webkitand separately satisfy Cypress’s Linux prerequisites for your distribution. The WebKit dependency command does not install all Cypress system requirements. - The suite works locally but not in CI: Make sure CI installs the browser package and required OS dependencies, and invoke
npx cypress run --browser webkit. Check the runner’s operating-system requirements as well as the project package installation. - A test fails only under WebKit: Check whether it relies on an unsupported feature or a documented behavioral difference, especially
cy.origin(), forced network errors, or particular typing events. Do not treat a WebKit-only failure as evidence that the application is necessarily broken in every browser. - Cross-subdomain behavior changes: Review the current
injectDocumentDomainconfiguration guidance and validate the behavior your application needs; enabling the setting is not guaranteed to be a neutral fix.
Or skip the browser setup
If your goal is to capture a page image or PDF rather than run browser tests, ScreenshotNeo provides a screenshot API and MCP server. A single request can return a screenshot or PDF; its response identifies page verdict and billing status. It is not a Cypress or WebKit test runner.
Example cURL request for a screenshot:
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 setup and request options. It removes cookie banners, newsletter popups and chat widgets before capture; bot checks, blank pages and failed loads are not billed; and its MCP server lets AI agents take screenshots. The free plan includes 1,000 shots per month with no card, and paid plans start at $5 for 3,000 shots. Sign up for 1,000 free screenshots a month, with no card required.
Frequently Asked Questions
Does Cypress WebKit run Apple Safari?
No. It runs WebKit, Safari’s browser engine, not Apple Safari itself.
Can I use Cypress WebKit in a recorded Cypress Cloud run?
Cypress documents the --record option with WebKit; use it when your Cypress Cloud recording workflow is configured.
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.




