Droid Memory Core · Shadow DOM

An open shadow root with a nested shadow host one level deeper, beside a closed-mode core that's genuinely unreachable from script.

The droid's memories are encapsulated. Open cores can be probed; the closed one cannot.

Shadow DOM is a hard Frames, Windows & DOM challenge on Fun UI Playground. An open shadow root with a nested shadow host one level deeper, beside a closed-mode core that's genuinely unreachable from script. It runs entirely in the browser, with no backend. Every interactive element carries a stable id and data-testid prefixed with “shadow-dom-”, and the techniques it exercises are pierce open shadow roots, nested shadow hosts, shadow-aware locators, open vs closed mode.

At a glance

Category
Frames, Windows & DOM
Difficulty
hard
Teaches
pierce open shadow roots · nested shadow hosts · shadow-aware locators · open vs closed mode
Backend
None — runs entirely in the browser
Locators
Stable id and data-testid, prefixed shadow-dom-

Selectors on this page

LocatorWhat it is
#core-designation #core-inputOpen core: <funui-droid-core id="shadow-dom-open"> — its shadow root contains #core-designation (text) and #core-input
#bank-secretNested: inside the open root sits <funui-memory-bank> with its own shadow root holding #bank-secret

Frequently asked questions

How do I locate an element inside a shadow root?

Pierce the open root: Playwright's CSS engine and Selenium 4's getShadowRoot both reach #core-designation and #core-input inside <funui-droid-core id="shadow-dom-open">, and one level deeper into <funui-memory-bank>'s own root for #bank-secret.

Can a test reach into a closed shadow root?

No. <funui-droid-core-sealed id="shadow-dom-closed"> returns null for element.shadowRoot by design, and nothing script-side pierces closed mode. Asserting that it is unreachable — rather than hunting for a workaround — is the correct outcome.

More Frames, Windows & DOM

Updated

Fun UI Playground — all challenges, bug hunts, getting started, glossary, about.