cdpfleet Pre-launch Get early access

cdpfleet / Cross-browser testing

For QA and front-end teams

Every browser your users have, without installing one.

Point Playwright at cdpfleet and the same test runs on real Chrome, Edge, Firefox, WebKit and eight more browsers, on the stable build or the next one, at the screen size you choose. Each run can leave a video, so a failure comes with the evidence.

  • 12browsers, real builds
  • beta · devchannels next to stable
  • 640×480 – 3840×2160screen sizes, headful

One test suite, many browsers

  • Playwright Test: give each project a Connect URL as its wsEndpoint, and every worker gets its own cloud browser; nothing to install on the CI machine.
  • Which engines: Chrome, Edge, Brave, Opera, Whale, Yandex, Chromium, Patchright and Rebrowser are Chromium-based; Firefox and Camoufox are based on Firefox source (not affiliated with Mozilla); WebKit is the engine behind Apple's browsers (all browsers).
  • Rendering differences show up where they should: printing to PDF works on every Chromium-based browser and is refused on Firefox, Camoufox and WebKit (case 44); WebKit lays pages out with its own engine (WebKit vs Chromium).
  • Mock the backend the same way everywhere: route.fulfill stubs and failures behaved the same on Chromium, Firefox and WebKit (case 48).
// playwright.config.ts
import { defineConfig } from '@playwright/test';
const headers = { 'x-api-key': process.env.CDPFLEET_API_KEY };
const url = (browser) => `wss://router01.cdpfleet.com/connect/${browser}?headless=new`;
export default defineConfig({
  projects: [
    { name: 'chrome', use: { connectOptions: { wsEndpoint: url('chrome'), headers } } },
    { name: 'edge', use: { connectOptions: { wsEndpoint: url('edge'), headers } } },
  ],
});

The next version, and the last one

  • Channels: "channel": "beta" or "dev" runs the next release before your users get it: Chrome beta and dev, Edge beta and dev, Brave beta, Opera developer. Each browser's page lists today's builds (browsers).
  • Older majors: "version" pins a retained previous major, e.g. the last two Chrome majors and older Camoufox builds, for "does it still work on last month's browser?" (pinned-version recipe).
  • What changes between versions, measured: stable, beta, dev and an older Chrome side by side got exactly the builds the catalog lists; the user agent carries only the major, and the TLS fingerprint was identical from 153 to 158 (case 03). Release-by-release diffs: browser updates.

Screens and devices

  • Screen size: headful sessions run on a display you choose, from 640×480 to 3840×2160, e.g. "screen_size": "1366x768"; open the context with viewport: null so the page sees it (chrome-screen-size recipe).
  • Mobile layouts: Playwright's device emulation works for responsive testing — user agent, viewport, touch and device pixel ratio change — but it is still desktop Chrome underneath, which a bot check can tell (case 02). Real devices: mobile.

Evidence when a test fails

  • A video of the run: headful sessions are recorded by default, headless ones with live_view or cdp; 480p on every plan, 720p and 1080p on a recording plan (recordings). A broken scrape was explained by its recording: the last seconds showed the last page, not a broken selector (case 41).
  • Playwright traces and video, client-side: the trace zip and WebM land on your machine over the normal connection, no server feature needed (case 18).
  • Screenshots and PDFs from one page load, with element crops for repeated visual checks (case 29).
  • Watch or take over a run live: a live view link a person can open while the test runs.