Skip to content
Latchkey

How to Run Microsoft Edge with Playwright in CI

Edge is not one of Playwright’s bundled browsers - you must install the real Edge channel, or launches fail with "channel msedge not found".

Playwright can drive branded Microsoft Edge via its channel mechanism, but unlike bundled Chromium, Edge is a real browser that must be installed on the runner. The fix is Playwright’s install msedge (with deps) plus targeting the msedge channel.

Why it fails in CI

Targeting channel: 'msedge' requires a system Edge install. On a runner without Edge you get Chromium distribution 'msedge' is not found or a launch failure. Even after installing Edge, a slim runner still needs the same Chromium system libraries headless Chrome needs.

Install & run it reliably

Use Playwright’s installer to add the Edge channel and its dependencies, then target the msedge channel in your config or launch options.

.github/workflows/e2e.yml
npm ci
npx playwright install --with-deps msedge

# playwright.config.ts:
#   projects: [{ name: 'edge',
#     use: { ...devices['Desktop Edge'], channel: 'msedge' } }]
npx playwright test --project=edge

Cache & speed

Edge installs as a system package rather than into ~/.cache/ms-playwright, so cache the apt/installer download or bake Edge into a custom runner image. Run only the Edge project when that is all you need, and reuse a Chromium-based base image so the shared libraries are already present.

Common errors

  • Chromium distribution 'msedge' is not found → install Edge with playwright install --with-deps msedge.
  • No usable sandbox! → containerized Edge needs --no-sandbox, same as Chrome.
  • error while loading shared libraries: libnss3.so → install the Chromium system lib set.
  • Edge version drift vs Playwright expectations → pin the Edge install and Playwright version together.

Key takeaways

  • Edge is a channel, not a bundled browser - install it with --with-deps msedge.
  • Target channel: 'msedge' and pass --no-sandbox in containers.
  • Bake Edge into the image since it does not live in the Playwright cache.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →