ddp_utils.browser.facade.frames¶
import ddp_utils.browser.facade.frames
Backend-neutral frame navigation service.
- class ddp_utils.browser.facade.frames.BrowserFrame(name: str, url: str, native: Any)¶
Bases:
objectDescribe one browser frame.
Parameters
Name
Type
Description
name
str
Provider-reported frame name when available.
url
str
Current frame URL when available.
native
Any
Provider-native frame object or Selenium target.
Examples
Inspect the frame selected for an operation:
frame = browser.frames.enter(0) print(frame.url)
- class ddp_utils.browser.facade.frames.BrowserFrames(browser: Browser)¶
Bases:
objectEnter and leave frames through one synchronous contract.
Parameters
Name
Type
Description
browser
Owning browser facade.
Examples
Limit normal facade searches to one frame:
with browser.frames.use(frame_element): submit = browser.find("button", text="Submit", required=True)
Bind frame state to one browser session.
Parameters
Name
Type
Description
browser
Owning browser facade.
Examples
Browser creates this service once:
frames = BrowserFrames(browser)
- property current: BrowserFrame¶
Return the active nested frame or
Nonefor the top document.Returns
Active frame descriptor, or the main-frame descriptor.
Examples
Detect whether searches are frame-scoped:
if browser.frames.current is not None: browser.frames.reset()
- all() list[BrowserFrame]¶
Return all currently discoverable frames.
Returns
Type
Description
list[BrowserFrame]
Main frame followed by descendants.
Examples
frames = browser.frames.all().
- property main: BrowserFrame¶
Return the main top-level frame.
Returns
Main frame descriptor.
Examples
browser.frames.switch(browser.frames.main).
- find(*, name: str | None = None, url: str | None = None, selector: str | None = None) BrowserFrame | None¶
Find a frame by name, URL glob, or iframe selector.
Parameters
Name
Type
Description
name
str | None
Optional exact frame name.
url
str | None
Optional URL glob.
selector
str | None
Optional iframe CSS selector.
Returns
Type
Description
BrowserFrame | None
Matching frame or
None.Examples
frame = browser.frames.find(name="results").
- switch(frame: BrowserFrame | 'BrowserElement' | str | int) BrowserFrame¶
Switch to a frame.
Parameters
Name
Type
Description
frame
BrowserFrame | 'BrowserElement' | str | int
Frame descriptor, element, name, URL, or index.
Returns
Type
Description
Active frame.
Examples
browser.frames.switch("results").
- default() BrowserFrame¶
Switch to the main document.
Returns
Type
Description
Main frame.
Examples
browser.frames.default().
- parent() BrowserFrame¶
Switch to the immediate parent frame.
Returns
Type
Description
Parent or main frame.
Examples
parent = browser.frames.parent().
- within(frame: BrowserFrame | 'BrowserElement' | str | int) Iterator[BrowserFrame]¶
Return a context manager scoped to one frame.
Parameters
Name
Type
Description
frame
BrowserFrame | 'BrowserElement' | str | int
Frame reference.
Returns
Type
Description
Iterator[BrowserFrame]
Context manager yielding the active frame.
Examples
with browser.frames.within("results"): ....
- enter(target: BrowserElement | str | int) BrowserFrame¶
Enter one child frame and make it the active facade search scope.
Parameters
Name
Type
Description
target
BrowserElement | str | int
Frame element, zero-based child-frame index, or frame name. Playwright also accepts an exact frame URL.
Returns
Type
Description
Active frame descriptor.
Raises
Exception
Description
The requested frame cannot be resolved.
Frame navigation is unavailable.
Examples
Enter the first child frame:
browser.frames.enter(0)
- exit() BrowserFrame | None¶
Leave the current frame and return the new active parent.
Returns
Type
Description
BrowserFrame | None
Parent frame descriptor or
Nonefor the top document.Raises
Exception
Description
No frame is currently active.
Frame navigation is unavailable.
Examples
Return to the immediate parent frame:
parent = browser.frames.exit()
- reset() None¶
Return facade operations to the top-level document.
Raises
Exception
Description
Frame navigation is unavailable.
Examples
Restore the top document after conditional frame work:
browser.frames.reset()
- use(target: BrowserElement | str | int) Iterator[BrowserFrame]¶
Enter a frame for one block and always restore its parent.
Parameters
Name
Type
Description
target
BrowserElement | str | int
Frame element, child index, name, or supported URL.
Yields
Active frame descriptor.
Raises
Exception
Description
The frame cannot be resolved.
Frame navigation is unavailable.
Examples
Search within a frame without leaking frame state:
with browser.frames.use("results"): rows = browser.find_all("tr")