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.
npm ci
npx playwright install --with-deps msedge
# playwright.config.ts:
# projects: [{ name: 'edge',
# use: { ...devices['Desktop Edge'], channel: 'msedge' } }]
npx playwright test --project=edgeCache & 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 withplaywright 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-sandboxin containers. - Bake Edge into the image since it does not live in the Playwright cache.