Why Automating Shopify Admin is a Nightmare (And How We Solved It)
Description and use
Automating Shopify Admin is hard due to session timeouts, MFA, Shadow DOM, and frequent UI changes. The solution involved a dedicated VM, a persistent Chrome profile, Shadow DOM traversal, and self‑healing selectors.
Problem
Automating Shopify Admin is difficult due to session timeouts, MFA prompts, Shadow DOM, and frequent UI changes.
Outcome
Stable, unattended end‑to‑end tests for Shopify Admin were achieved by isolating the environment, persisting authenticated sessions, handling Shadow DOM, and implementing self‑healing selectors.
Workflow
- Set up a dedicated virtual machine for the workflow
- Launch Chrome once with a dedicated user profile and remote debugging enabled
- Log in manually (including MFA) in that window
- Attach Playwright to the existing Chrome session via CDP
- Implement custom logic to pierce open Shadow DOM roots
- Add fallback and self‑healing selector strategies to handle UI changes
Evidence
Session timeouts. Scheduled or long-running suites need a session that's still valid when they execute.
MFA prompts. MFA exists specifically to interrupt automated, unattended access.
Shadow DOM. Shopify's admin encapsulates component internals in shadow roots.
Frequent UI changes. Shopify ships updates on its own schedule.
Instead of running Shopify–AdNabu tests on shared infrastructure, the team set up a dedicated virtual machine for this workflow.
The profile persists login state between runs, so the automation attaches to a session that's already past the MFA challenge.
The team built custom logic for piercing shadow roots: first identifying which parts of the Shopify admin use Shadow DOM, then writing selector and interaction code that traverses into those shadow trees.
The team implemented fallback and self‑healing selector logic that identifies elements using multiple properties instead of a single brittle reference.
- Record date: 2026-10-05T04:55:50.195Z