diff --git a/docs/api-contract-scan.md b/docs/api-contract-scan.md
new file mode 100644
index 0000000..a156a54
--- /dev/null
+++ b/docs/api-contract-scan.md
@@ -0,0 +1,153 @@
+# API Contract Scan
+
+`CODEX.md` was not present anywhere under `/workspace`, so this scan used `CLAUDE.md` plus the existing repository structure as the operative conventions.
+
+Coverage heuristic: `Yes` means the symbol is referenced from `*_test.go` and/or, for callable symbols, its body had non-zero statement coverage in `go test -coverprofile=/tmp/webview-cover.out ./...`.
+
+Usage-example comment heuristic: `Yes` means the symbol's own Go doc comment contains `Example`, `for example`, or `e.g.`.
+
+| Name | Signature | Package Path | Description | Test Coverage | Usage-Example Comment |
+|---|---|---|---|---|---|
+| Action | Action interface { Execute(ctx context.Context, wv *Webview) error } | dappco.re/go/core/webview | Action represents a browser action that can be performed. | Yes | No |
+| ClickAction | ClickAction struct { Selector string } | dappco.re/go/core/webview | ClickAction represents a click action. | Yes | No |
+| ClickAction.Execute | func (a ClickAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute performs the click action. | No | No |
+| TypeAction | TypeAction struct { Selector string Text string } | dappco.re/go/core/webview | TypeAction represents a typing action. | Yes | No |
+| TypeAction.Execute | func (a TypeAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute performs the type action. | No | No |
+| NavigateAction | NavigateAction struct { URL string } | dappco.re/go/core/webview | NavigateAction represents a navigation action. | Yes | No |
+| NavigateAction.Execute | func (a NavigateAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute performs the navigate action. | No | No |
+| WaitAction | WaitAction struct { Duration time.Duration } | dappco.re/go/core/webview | WaitAction represents a wait action. | Yes | No |
+| WaitAction.Execute | func (a WaitAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute performs the wait action. | Yes | No |
+| WaitForSelectorAction | WaitForSelectorAction struct { Selector string } | dappco.re/go/core/webview | WaitForSelectorAction represents waiting for a selector. | Yes | No |
+| WaitForSelectorAction.Execute | func (a WaitForSelectorAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute waits for the selector to appear. | No | No |
+| ScrollAction | ScrollAction struct { X int Y int } | dappco.re/go/core/webview | ScrollAction represents a scroll action. | Yes | No |
+| ScrollAction.Execute | func (a ScrollAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute performs the scroll action. | No | No |
+| ScrollIntoViewAction | ScrollIntoViewAction struct { Selector string } | dappco.re/go/core/webview | ScrollIntoViewAction scrolls an element into view. | Yes | No |
+| ScrollIntoViewAction.Execute | func (a ScrollIntoViewAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute scrolls the element into view. | No | No |
+| FocusAction | FocusAction struct { Selector string } | dappco.re/go/core/webview | FocusAction focuses an element. | Yes | No |
+| FocusAction.Execute | func (a FocusAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute focuses the element. | No | No |
+| BlurAction | BlurAction struct { Selector string } | dappco.re/go/core/webview | BlurAction removes focus from an element. | Yes | No |
+| BlurAction.Execute | func (a BlurAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute removes focus from the element. | No | No |
+| ClearAction | ClearAction struct { Selector string } | dappco.re/go/core/webview | ClearAction clears the value of an input element. | Yes | No |
+| ClearAction.Execute | func (a ClearAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute clears the input value. | No | No |
+| SelectAction | SelectAction struct { Selector string Value string } | dappco.re/go/core/webview | SelectAction selects an option in a select element. | Yes | No |
+| SelectAction.Execute | func (a SelectAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute selects the option. | No | No |
+| CheckAction | CheckAction struct { Selector string Checked bool } | dappco.re/go/core/webview | CheckAction checks or unchecks a checkbox. | Yes | No |
+| CheckAction.Execute | func (a CheckAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute checks/unchecks the checkbox. | No | No |
+| HoverAction | HoverAction struct { Selector string } | dappco.re/go/core/webview | HoverAction hovers over an element. | Yes | No |
+| HoverAction.Execute | func (a HoverAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute hovers over the element. | No | No |
+| DoubleClickAction | DoubleClickAction struct { Selector string } | dappco.re/go/core/webview | DoubleClickAction double-clicks an element. | Yes | No |
+| DoubleClickAction.Execute | func (a DoubleClickAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute double-clicks the element. | No | No |
+| RightClickAction | RightClickAction struct { Selector string } | dappco.re/go/core/webview | RightClickAction right-clicks an element. | Yes | No |
+| RightClickAction.Execute | func (a RightClickAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute right-clicks the element. | No | No |
+| PressKeyAction | PressKeyAction struct { Key string // e.g., "Enter", "Tab", "Escape" } | dappco.re/go/core/webview | PressKeyAction presses a key. | Yes | No |
+| PressKeyAction.Execute | func (a PressKeyAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute presses the key. | No | No |
+| SetAttributeAction | SetAttributeAction struct { Selector string Attribute string Value string } | dappco.re/go/core/webview | SetAttributeAction sets an attribute on an element. | Yes | No |
+| SetAttributeAction.Execute | func (a SetAttributeAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute sets the attribute. | No | No |
+| RemoveAttributeAction | RemoveAttributeAction struct { Selector string Attribute string } | dappco.re/go/core/webview | RemoveAttributeAction removes an attribute from an element. | Yes | No |
+| RemoveAttributeAction.Execute | func (a RemoveAttributeAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute removes the attribute. | No | No |
+| SetValueAction | SetValueAction struct { Selector string Value string } | dappco.re/go/core/webview | SetValueAction sets the value of an input element. | Yes | No |
+| SetValueAction.Execute | func (a SetValueAction) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute sets the value. | No | No |
+| ActionSequence | ActionSequence struct { // contains filtered or unexported fields } | dappco.re/go/core/webview | ActionSequence represents a sequence of actions to execute. | Yes | No |
+| NewActionSequence | func NewActionSequence() *ActionSequence | dappco.re/go/core/webview | NewActionSequence creates a new action sequence. | Yes | No |
+| ActionSequence.Add | func (s *ActionSequence) Add(action Action) *ActionSequence | dappco.re/go/core/webview | Add adds an action to the sequence. | Yes | No |
+| ActionSequence.Click | func (s *ActionSequence) Click(selector string) *ActionSequence | dappco.re/go/core/webview | Click adds a click action. | Yes | No |
+| ActionSequence.Type | func (s *ActionSequence) Type(selector, text string) *ActionSequence | dappco.re/go/core/webview | Type adds a type action. | Yes | No |
+| ActionSequence.Navigate | func (s *ActionSequence) Navigate(url string) *ActionSequence | dappco.re/go/core/webview | Navigate adds a navigate action. | Yes | No |
+| ActionSequence.Wait | func (s *ActionSequence) Wait(d time.Duration) *ActionSequence | dappco.re/go/core/webview | Wait adds a wait action. | Yes | No |
+| ActionSequence.WaitForSelector | func (s *ActionSequence) WaitForSelector(selector string) *ActionSequence | dappco.re/go/core/webview | WaitForSelector adds a wait for selector action. | Yes | No |
+| ActionSequence.Execute | func (s *ActionSequence) Execute(ctx context.Context, wv *Webview) error | dappco.re/go/core/webview | Execute executes all actions in the sequence. | No | No |
+| Webview.UploadFile | func (wv *Webview) UploadFile(selector string, filePaths []string) error | dappco.re/go/core/webview | UploadFile uploads a file to a file input element. | No | No |
+| Webview.DragAndDrop | func (wv *Webview) DragAndDrop(sourceSelector, targetSelector string) error | dappco.re/go/core/webview | DragAndDrop performs a drag and drop operation. | No | No |
+| AngularHelper | AngularHelper struct { // contains filtered or unexported fields } | dappco.re/go/core/webview | AngularHelper provides Angular-specific testing utilities. | Yes | No |
+| NewAngularHelper | func NewAngularHelper(wv *Webview) *AngularHelper | dappco.re/go/core/webview | NewAngularHelper creates a new Angular helper for the webview. | Yes | No |
+| AngularHelper.SetTimeout | func (ah *AngularHelper) SetTimeout(d time.Duration) | dappco.re/go/core/webview | SetTimeout sets the default timeout for Angular operations. | No | No |
+| AngularHelper.WaitForAngular | func (ah *AngularHelper) WaitForAngular() error | dappco.re/go/core/webview | WaitForAngular waits for Angular to finish all pending operations. | No | No |
+| AngularHelper.NavigateByRouter | func (ah *AngularHelper) NavigateByRouter(path string) error | dappco.re/go/core/webview | NavigateByRouter navigates using Angular Router. | No | No |
+| AngularHelper.GetRouterState | func (ah *AngularHelper) GetRouterState() (*AngularRouterState, error) | dappco.re/go/core/webview | GetRouterState returns the current Angular router state. | No | No |
+| AngularRouterState | AngularRouterState struct { URL string `json:"url"` Fragment string `json:"fragment,omitempty"` Params map[string]string `json:"params,omitempty"` QueryParams map[string]string `json:"queryParams,omitempty"` } | dappco.re/go/core/webview | AngularRouterState represents Angular router state. | Yes | No |
+| AngularHelper.GetComponentProperty | func (ah *AngularHelper) GetComponentProperty(selector, propertyName string) (any, error) | dappco.re/go/core/webview | GetComponentProperty gets a property from an Angular component. | No | No |
+| AngularHelper.SetComponentProperty | func (ah *AngularHelper) SetComponentProperty(selector, propertyName string, value any) error | dappco.re/go/core/webview | SetComponentProperty sets a property on an Angular component. | No | No |
+| AngularHelper.CallComponentMethod | func (ah *AngularHelper) CallComponentMethod(selector, methodName string, args ...any) (any, error) | dappco.re/go/core/webview | CallComponentMethod calls a method on an Angular component. | No | No |
+| AngularHelper.TriggerChangeDetection | func (ah *AngularHelper) TriggerChangeDetection() error | dappco.re/go/core/webview | TriggerChangeDetection manually triggers Angular change detection. | No | No |
+| AngularHelper.GetService | func (ah *AngularHelper) GetService(serviceName string) (any, error) | dappco.re/go/core/webview | GetService gets an Angular service by token name. | No | No |
+| AngularHelper.WaitForComponent | func (ah *AngularHelper) WaitForComponent(selector string) error | dappco.re/go/core/webview | WaitForComponent waits for an Angular component to be present. | No | No |
+| AngularHelper.DispatchEvent | func (ah *AngularHelper) DispatchEvent(selector, eventName string, detail any) error | dappco.re/go/core/webview | DispatchEvent dispatches a custom event on an element. | No | No |
+| AngularHelper.GetNgModel | func (ah *AngularHelper) GetNgModel(selector string) (any, error) | dappco.re/go/core/webview | GetNgModel gets the value of an ngModel-bound input. | No | No |
+| AngularHelper.SetNgModel | func (ah *AngularHelper) SetNgModel(selector string, value any) error | dappco.re/go/core/webview | SetNgModel sets the value of an ngModel-bound input. | Yes | No |
+| CDPClient | CDPClient struct { // contains filtered or unexported fields } | dappco.re/go/core/webview | CDPClient handles communication with Chrome DevTools Protocol via WebSocket. | Yes | No |
+| TargetInfo | TargetInfo struct { ID string `json:"id"` Type string `json:"type"` Title string `json:"title"` URL string `json:"url"` WebSocketDebuggerURL string `json:"webSocketDebuggerUrl"` } | dappco.re/go/core/webview | TargetInfo represents Chrome DevTools target information. | Yes | No |
+| NewCDPClient | func NewCDPClient(debugURL string) (*CDPClient, error) | dappco.re/go/core/webview | NewCDPClient creates a new CDP client connected to the given debug URL. | Yes | Yes |
+| CDPClient.Close | func (c *CDPClient) Close() error | dappco.re/go/core/webview | Close closes the CDP connection. | Yes | No |
+| CDPClient.Call | func (c *CDPClient) Call(ctx context.Context, method string, params map[string]any) (map[string]any, error) | dappco.re/go/core/webview | Call sends a CDP method call and waits for the response. | Yes | No |
+| CDPClient.OnEvent | func (c *CDPClient) OnEvent(method string, handler func(map[string]any)) | dappco.re/go/core/webview | OnEvent registers a handler for CDP events. | Yes | No |
+| CDPClient.Send | func (c *CDPClient) Send(method string, params map[string]any) error | dappco.re/go/core/webview | Send sends a fire-and-forget CDP message (no response expected). | No | No |
+| CDPClient.DebugURL | func (c *CDPClient) DebugURL() string | dappco.re/go/core/webview | DebugURL returns the debug HTTP URL. | No | No |
+| CDPClient.WebSocketURL | func (c *CDPClient) WebSocketURL() string | dappco.re/go/core/webview | WebSocketURL returns the WebSocket URL being used. | No | No |
+| CDPClient.NewTab | func (c *CDPClient) NewTab(url string) (*CDPClient, error) | dappco.re/go/core/webview | NewTab creates a new browser tab and returns a new CDPClient connected to it. | No | No |
+| CDPClient.CloseTab | func (c *CDPClient) CloseTab() error | dappco.re/go/core/webview | CloseTab closes the current tab (target). | Yes | No |
+| ListTargets | func ListTargets(debugURL string) ([]TargetInfo, error) | dappco.re/go/core/webview | ListTargets returns all available targets. | No | No |
+| ListTargetsAll | func ListTargetsAll(debugURL string) iter.Seq[TargetInfo] | dappco.re/go/core/webview | ListTargetsAll returns an iterator over all available targets. | No | No |
+| GetVersion | func GetVersion(debugURL string) (map[string]string, error) | dappco.re/go/core/webview | GetVersion returns Chrome version information. | No | No |
+| ConsoleWatcher | ConsoleWatcher struct { // contains filtered or unexported fields } | dappco.re/go/core/webview | ConsoleWatcher provides advanced console message watching capabilities. | Yes | No |
+| ConsoleFilter | ConsoleFilter struct { Type string // Filter by type (log, warn, error, info, debug), empty for all Pattern string // Filter by text pattern (substring match) } | dappco.re/go/core/webview | ConsoleFilter filters console messages. | Yes | No |
+| ConsoleHandler | ConsoleHandler func(msg ConsoleMessage) | dappco.re/go/core/webview | ConsoleHandler is called when a matching console message is received. | Yes | No |
+| NewConsoleWatcher | func NewConsoleWatcher(wv *Webview) *ConsoleWatcher | dappco.re/go/core/webview | NewConsoleWatcher creates a new console watcher for the webview. | No | No |
+| ConsoleWatcher.AddFilter | func (cw *ConsoleWatcher) AddFilter(filter ConsoleFilter) | dappco.re/go/core/webview | AddFilter adds a filter to the watcher. | Yes | No |
+| ConsoleWatcher.ClearFilters | func (cw *ConsoleWatcher) ClearFilters() | dappco.re/go/core/webview | ClearFilters removes all filters. | Yes | No |
+| ConsoleWatcher.AddHandler | func (cw *ConsoleWatcher) AddHandler(handler ConsoleHandler) | dappco.re/go/core/webview | AddHandler adds a handler for console messages. | Yes | No |
+| ConsoleWatcher.SetLimit | func (cw *ConsoleWatcher) SetLimit(limit int) | dappco.re/go/core/webview | SetLimit sets the maximum number of messages to retain. | No | No |
+| ConsoleWatcher.Messages | func (cw *ConsoleWatcher) Messages() []ConsoleMessage | dappco.re/go/core/webview | Messages returns all captured messages. | No | No |
+| ConsoleWatcher.MessagesAll | func (cw *ConsoleWatcher) MessagesAll() iter.Seq[ConsoleMessage] | dappco.re/go/core/webview | MessagesAll returns an iterator over all captured messages. | No | No |
+| ConsoleWatcher.FilteredMessages | func (cw *ConsoleWatcher) FilteredMessages() []ConsoleMessage | dappco.re/go/core/webview | FilteredMessages returns messages matching the current filters. | Yes | No |
+| ConsoleWatcher.FilteredMessagesAll | func (cw *ConsoleWatcher) FilteredMessagesAll() iter.Seq[ConsoleMessage] | dappco.re/go/core/webview | FilteredMessagesAll returns an iterator over messages matching the current filters. | Yes | No |
+| ConsoleWatcher.Errors | func (cw *ConsoleWatcher) Errors() []ConsoleMessage | dappco.re/go/core/webview | Errors returns all error messages. | Yes | No |
+| ConsoleWatcher.ErrorsAll | func (cw *ConsoleWatcher) ErrorsAll() iter.Seq[ConsoleMessage] | dappco.re/go/core/webview | ErrorsAll returns an iterator over all error messages. | Yes | No |
+| ConsoleWatcher.Warnings | func (cw *ConsoleWatcher) Warnings() []ConsoleMessage | dappco.re/go/core/webview | Warnings returns all warning messages. | Yes | No |
+| ConsoleWatcher.WarningsAll | func (cw *ConsoleWatcher) WarningsAll() iter.Seq[ConsoleMessage] | dappco.re/go/core/webview | WarningsAll returns an iterator over all warning messages. | Yes | No |
+| ConsoleWatcher.Clear | func (cw *ConsoleWatcher) Clear() | dappco.re/go/core/webview | Clear clears all captured messages. | Yes | No |
+| ConsoleWatcher.WaitForMessage | func (cw *ConsoleWatcher) WaitForMessage(ctx context.Context, filter ConsoleFilter) (*ConsoleMessage, error) | dappco.re/go/core/webview | WaitForMessage waits for a message matching the filter. | Yes | No |
+| ConsoleWatcher.WaitForError | func (cw *ConsoleWatcher) WaitForError(ctx context.Context) (*ConsoleMessage, error) | dappco.re/go/core/webview | WaitForError waits for an error message. | No | No |
+| ConsoleWatcher.HasErrors | func (cw *ConsoleWatcher) HasErrors() bool | dappco.re/go/core/webview | HasErrors returns true if there are any error messages. | Yes | No |
+| ConsoleWatcher.Count | func (cw *ConsoleWatcher) Count() int | dappco.re/go/core/webview | Count returns the number of captured messages. | Yes | No |
+| ConsoleWatcher.ErrorCount | func (cw *ConsoleWatcher) ErrorCount() int | dappco.re/go/core/webview | ErrorCount returns the number of error messages. | Yes | No |
+| ExceptionInfo | ExceptionInfo struct { Text string `json:"text"` LineNumber int `json:"lineNumber"` ColumnNumber int `json:"columnNumber"` URL string `json:"url"` StackTrace string `json:"stackTrace"` Timestamp time.Time `json:"timestamp"` } | dappco.re/go/core/webview | ExceptionInfo represents information about a JavaScript exception. | Yes | No |
+| ExceptionWatcher | ExceptionWatcher struct { // contains filtered or unexported fields } | dappco.re/go/core/webview | ExceptionWatcher watches for JavaScript exceptions. | Yes | No |
+| NewExceptionWatcher | func NewExceptionWatcher(wv *Webview) *ExceptionWatcher | dappco.re/go/core/webview | NewExceptionWatcher creates a new exception watcher. | No | No |
+| ExceptionWatcher.Exceptions | func (ew *ExceptionWatcher) Exceptions() []ExceptionInfo | dappco.re/go/core/webview | Exceptions returns all captured exceptions. | Yes | No |
+| ExceptionWatcher.ExceptionsAll | func (ew *ExceptionWatcher) ExceptionsAll() iter.Seq[ExceptionInfo] | dappco.re/go/core/webview | ExceptionsAll returns an iterator over all captured exceptions. | Yes | No |
+| ExceptionWatcher.Clear | func (ew *ExceptionWatcher) Clear() | dappco.re/go/core/webview | Clear clears all captured exceptions. | Yes | No |
+| ExceptionWatcher.HasExceptions | func (ew *ExceptionWatcher) HasExceptions() bool | dappco.re/go/core/webview | HasExceptions returns true if there are any exceptions. | Yes | No |
+| ExceptionWatcher.Count | func (ew *ExceptionWatcher) Count() int | dappco.re/go/core/webview | Count returns the number of exceptions. | Yes | No |
+| ExceptionWatcher.AddHandler | func (ew *ExceptionWatcher) AddHandler(handler func(ExceptionInfo)) | dappco.re/go/core/webview | AddHandler adds a handler for exceptions. | Yes | No |
+| ExceptionWatcher.WaitForException | func (ew *ExceptionWatcher) WaitForException(ctx context.Context) (*ExceptionInfo, error) | dappco.re/go/core/webview | WaitForException waits for an exception to be thrown. | Yes | No |
+| FormatConsoleOutput | func FormatConsoleOutput(messages []ConsoleMessage) string | dappco.re/go/core/webview | FormatConsoleOutput formats console messages for display. | Yes | No |
+| Webview | Webview struct { // contains filtered or unexported fields } | dappco.re/go/core/webview | Webview represents a connection to a Chrome DevTools Protocol endpoint. | Yes | No |
+| ConsoleMessage | ConsoleMessage struct { Type string `json:"type"` // log, warn, error, info, debug Text string `json:"text"` // Message text Timestamp time.Time `json:"timestamp"` // When the message was logged URL string `json:"url"` // Source URL Line int `json:"line"` // Source line number Column int `json:"column"` // Source column number } | dappco.re/go/core/webview | ConsoleMessage represents a captured console log message. | Yes | No |
+| ElementInfo | ElementInfo struct { NodeID int `json:"nodeId"` TagName string `json:"tagName"` Attributes map[string]string `json:"attributes"` InnerHTML string `json:"innerHTML,omitempty"` InnerText string `json:"innerText,omitempty"` BoundingBox *BoundingBox `json:"boundingBox,omitempty"` } | dappco.re/go/core/webview | ElementInfo represents information about a DOM element. | Yes | No |
+| BoundingBox | BoundingBox struct { X float64 `json:"x"` Y float64 `json:"y"` Width float64 `json:"width"` Height float64 `json:"height"` } | dappco.re/go/core/webview | BoundingBox represents the bounding rectangle of an element. | Yes | No |
+| Option | Option func(*Webview) error | dappco.re/go/core/webview | Option configures a Webview instance. | Yes | No |
+| WithDebugURL | func WithDebugURL(url string) Option | dappco.re/go/core/webview | WithDebugURL sets the Chrome DevTools debugging URL. | Yes | Yes |
+| WithTimeout | func WithTimeout(d time.Duration) Option | dappco.re/go/core/webview | WithTimeout sets the default timeout for operations. | Yes | No |
+| WithConsoleLimit | func WithConsoleLimit(limit int) Option | dappco.re/go/core/webview | WithConsoleLimit sets the maximum number of console messages to retain. | Yes | No |
+| New | func New(opts ...Option) (*Webview, error) | dappco.re/go/core/webview | New creates a new Webview instance with the given options. | Yes | No |
+| Webview.Close | func (wv *Webview) Close() error | dappco.re/go/core/webview | Close closes the Webview connection. | No | No |
+| Webview.Navigate | func (wv *Webview) Navigate(url string) error | dappco.re/go/core/webview | Navigate navigates to the specified URL. | No | No |
+| Webview.Click | func (wv *Webview) Click(selector string) error | dappco.re/go/core/webview | Click clicks on an element matching the selector. | No | No |
+| Webview.Type | func (wv *Webview) Type(selector, text string) error | dappco.re/go/core/webview | Type types text into an element matching the selector. | No | No |
+| Webview.QuerySelector | func (wv *Webview) QuerySelector(selector string) (*ElementInfo, error) | dappco.re/go/core/webview | QuerySelector finds an element by CSS selector and returns its information. | No | No |
+| Webview.QuerySelectorAll | func (wv *Webview) QuerySelectorAll(selector string) ([]*ElementInfo, error) | dappco.re/go/core/webview | QuerySelectorAll finds all elements matching the selector. | No | No |
+| Webview.QuerySelectorAllAll | func (wv *Webview) QuerySelectorAllAll(selector string) iter.Seq[*ElementInfo] | dappco.re/go/core/webview | QuerySelectorAllAll returns an iterator over all elements matching the selector. | No | No |
+| Webview.GetConsole | func (wv *Webview) GetConsole() []ConsoleMessage | dappco.re/go/core/webview | GetConsole returns captured console messages. | No | No |
+| Webview.GetConsoleAll | func (wv *Webview) GetConsoleAll() iter.Seq[ConsoleMessage] | dappco.re/go/core/webview | GetConsoleAll returns an iterator over captured console messages. | No | No |
+| Webview.ClearConsole | func (wv *Webview) ClearConsole() | dappco.re/go/core/webview | ClearConsole clears captured console messages. | No | No |
+| Webview.Screenshot | func (wv *Webview) Screenshot() ([]byte, error) | dappco.re/go/core/webview | Screenshot captures a screenshot and returns it as PNG bytes. | No | No |
+| Webview.Evaluate | func (wv *Webview) Evaluate(script string) (any, error) | dappco.re/go/core/webview | Evaluate executes JavaScript and returns the result. | No | No |
+| Webview.WaitForSelector | func (wv *Webview) WaitForSelector(selector string) error | dappco.re/go/core/webview | WaitForSelector waits for an element matching the selector to appear. | No | No |
+| Webview.GetURL | func (wv *Webview) GetURL() (string, error) | dappco.re/go/core/webview | GetURL returns the current page URL. | No | No |
+| Webview.GetTitle | func (wv *Webview) GetTitle() (string, error) | dappco.re/go/core/webview | GetTitle returns the current page title. | No | No |
+| Webview.GetHTML | func (wv *Webview) GetHTML(selector string) (string, error) | dappco.re/go/core/webview | GetHTML returns the outer HTML of an element or the whole document. | No | No |
+| Webview.SetViewport | func (wv *Webview) SetViewport(width, height int) error | dappco.re/go/core/webview | SetViewport sets the viewport size. | No | No |
+| Webview.SetUserAgent | func (wv *Webview) SetUserAgent(userAgent string) error | dappco.re/go/core/webview | SetUserAgent sets the user agent string. | No | No |
+| Webview.Reload | func (wv *Webview) Reload() error | dappco.re/go/core/webview | Reload reloads the current page. | No | No |
+| Webview.GoBack | func (wv *Webview) GoBack() error | dappco.re/go/core/webview | GoBack navigates back in history. | No | No |
+| Webview.GoForward | func (wv *Webview) GoForward() error | dappco.re/go/core/webview | GoForward navigates forward in history. | No | No |