// the find
elixir-wallaby/wallaby
Concurrent browser tests for your Elixir web apps.
Wallaby is a browser testing library for Elixir that runs ExUnit tests concurrently against real browsers via ChromeDriver or Selenium. It's the standard choice for end-to-end testing in Phoenix apps, with first-class support for Ecto SQL sandbox so database state is isolated per test without serializing the whole suite.
The Ecto sandbox integration is genuinely well-designed — it threads the sandbox token through the browser's user-agent header so the HTTP request handler can join the right database transaction, which is a non-obvious problem it solves cleanly. Concurrent multi-session tests (the `@sessions 2` example) work out of the box, which is rare for browser test frameworks. The blocking query API sidesteps most flakiness from async JS — instead of `sleep`, you express what you're waiting for and Wallaby polls until it appears or times out. LiveView support via `on_mount` hooks is kept up to date with Phoenix releases.
Only Chrome and Selenium are supported drivers — no Playwright, no WebKit, no Firefox without going through Selenium, so you can't test Safari rendering at all. The hackney HTTP client is a transitive dependency that occasionally causes version conflicts in larger umbrella apps, and there's no plan to move off it. WebAuthn/Passkey support is bolted on via raw CDP calls with no helper API, meaning any test touching passwordless auth looks like a copied blob of JSON. Last notable activity was mid-2024 and there are open issues about Chrome version compatibility that take months to get addressed, which matters because ChromeDriver releases track Chrome's rapid release cadence.