A locator describes how to find one or more elements inside an attached frame. Locators are chainable and lazy: nothing touches the page until you call an action. If you have used Playwright, you already know this model.
Locators run wherever attachFrame() attached the frame: in the FKN
extension’s content script or in the cloud render proxy. Consent applies only to the extension
backend. A cloud frame uses either an isolated or persistent cloud cookie jar, depending on
syncCookies, and does not show extension prompts.
Locators and actions by execution backend
All APIs below are called from browser code. The columns show which backend performs the work.
Each selector returns a new locator, scoped to the previous step’s matches.
The frame root starts narrow: it offers locator(css), frameLocator(css) and owner(). The rest of the set below becomes available on element locators, from the first locator() onward; owner() stays a frame-locator selector.
Actions are terminal: they resolve the chain against the live page and perform the operation. On the extension backend, each action is checked against a permission keyed to its capability and target. Severity-0 actions continue automatically; other actions prompt when no existing grant covers them. Cloud actions do not use extension consent.
Reading page content (textContent, getAttribute) and acting on it (click, fill, hover) use distinct extension capabilities. Visibility, existence, and count checks are severity 0 and do not prompt. A user can grant content reading without granting page actions, and vice versa.
Drive an embedded page through the extension below: single actions (one consent each), an area grant
that covers a region, and the on-device activity log. Needs the FKN extension installed; the demo
picks it up automatically. For a demo that also runs without the extension, see
attachFrame().