Versions in this module Expand all Collapse all v0 v0.6.0 Aug 12, 2026 Changes in this version + const VideoRuntimeStaleAfter + func AddExtractionBoxes(page *rod.Page, result *ExtractionResult) + func DropElement(el *rod.Element, payload dropPayload) error + func DropTarget(page *rod.Page, target string, paths []string, data []DropData, ...) error + func HideHighlights(page *rod.Page, target string, snapshot *PageSnapshot) error + func HighlightTarget(page *rod.Page, target, style string, snapshot *PageSnapshot) error + func ResolveTarget(page *rod.Page, target string, snapshot *PageSnapshot) (*rod.Element, error) + func RunVideoRuntime(ctx context.Context, opts VideoRuntimeOpts) (err error) + func VideoRuntimeStatusPath(framesDir string) string + func VideoRuntimeStopPath(statusPath string) string + func WaitForTarget(page *rod.Page, target string, snapshot *PageSnapshot, state ElementState, ...) (*rod.Element, error) type Browser + func (b *Browser) ConnectURL() string + type DropData struct + MIME string + Value string + type ElementBox struct + Height int + Width int + X int + Y int type ExtractedNode + Box *ElementBox + type LocatorMatchCountError struct + Count int + Description string + func (e *LocatorMatchCountError) Error() string + type PersistentSessionObserver struct + func StartPersistentSessionObserver(connectURL string) (*PersistentSessionObserver, error) + func (p *PersistentSessionObserver) Stop() + type VideoRuntimeOpts struct + ConnectURL string + FramesDir string + StatusPath string + TargetID string + type VideoRuntimeStatus struct + Error string + Frames int64 + StartedAt string + State string + StoppedAt string + UpdatedAt string + func ReadVideoRuntimeStatus(path string) (VideoRuntimeStatus, error) + func RequestVideoRuntimeStop(statusPath string, timeout time.Duration) (VideoRuntimeStatus, error) + func WaitForVideoRuntime(path, want string, timeout time.Duration) (VideoRuntimeStatus, error) + func (s VideoRuntimeStatus) IsStale(now time.Time, maxAge time.Duration) bool type VideoState + FramesDir string + RuntimeStatus string v0.5.0 Aug 12, 2026 Changes in this version + const ContentBoundaryClose + const ContentBoundaryOpen + const CookiesJSONFilename + const DefaultSessionName + const MobileViewportThreshold + var ActivePolicy *policy.Policy + var AntiBotPatterns = []string + var DefaultDiscoverPorts = []int + var DefaultExtensionNames = []string + var ErrSessionNotFound = errors.New("session not found in registry") + var ErrStaleRef = errors.New("stale ref: snapshot is missing or no longer matches the page") + func AcquireContext(b *rod.Browser, name string) (*rod.Browser, error) + func AcquireSession(name string, opts SessionSpawnOpts) (string, error) + func AddInitScript(srcPath string) (string, error) + func AnnotateScreenshot(page *rod.Page, snapshot *PageSnapshot, screenshotPNG []byte) ([]byte, error) + func ApplyColorScheme(page *rod.Page, scheme string) error + func ApplyDefaultPageProfile(page *rod.Page) error + func ApplyDevice(page *rod.Page, d Device) error + func ApplyEmulationState(page *rod.Page, s EmulationState) error + func ApplyInitScriptFiles(page *rod.Page, paths []string) error + func ApplyInitScripts(page *rod.Page) error + func ApplyLocale(page *rod.Page, locale string) error + func ApplyProxyAuth(page *rod.Page, proxyURL string) error + func ApplyServiceWorkersMode(page *rod.Page, mode string) error + func ApplyStealth(page *rod.Page) error + func ApplyTimezone(page *rod.Page, tz string) error + func ApplyUserAgent(page *rod.Page, ua string) error + func ApplyUserAgentLocale(page *rod.Page, ua string, locale string) error + func BuildHTTPClient(opts HTTPClientOpts) (*http.Client, error) + func CleanupFailedLauncher(l *launcher.Launcher, removeProfile bool) + func CleanupLauncher(l *launcher.Launcher, removeProfile bool) + func ClickElement(page *rod.Page, el *rod.Element) error + func ClickElementWithButton(page *rod.Page, el *rod.Element, button proto.InputMouseButton) error + func ClickRef(page *rod.Page, ref string, snapshot *PageSnapshot) error + func ClipboardRead(page *rod.Page) (string, error) + func ClipboardWrite(page *rod.Page, text string) error + func CloseContext(b *rod.Browser, name string) error + func CloseTab(browser *rod.Browser, index int) (proto.TargetTargetID, error) + func CountSelector(page *rod.Page, selector string) int + func DblClickRef(page *rod.Page, ref string, snapshot *PageSnapshot) error + func DblClickRefWithButton(page *rod.Page, ref string, snapshot *PageSnapshot, ...) error + func DecryptCookiesInPlace(cookiesPath string) (total, decrypted, failed int, err error) + func DefaultExtensionPaths() ([]string, error) + func DefaultExtensionsDir() (string, error) + func DefaultSession() (string, bool) + func DetachSysProcAttr() *syscall.SysProcAttr + func DetectAgent() bool + func DiscoverCDP(ports []int, timeout time.Duration) (string, error) + func DiscoverCDPChannel(channel string, ports []int, timeout time.Duration) (string, error) + func DismissCookieBanner(page *rod.Page) bool + func DragDrop(page *rod.Page, fromRef, toRef string, snapshot *PageSnapshot, steps int) error + func DragDropCoords(page *rod.Page, sx, sy, dx, dy float64, steps int) error + func EvadeRuntimeEnable() bool + func EvalJS(page *rod.Page, expr string, elementRef string, snapshot *PageSnapshot) (string, error) + func EvalJSTimeout(page *rod.Page, expr string, elementRef string, snapshot *PageSnapshot, ...) (string, error) + func ExtractNextData(html string) []byte + func FindSystemChromeBinary() string + func FormatCollect(r *CollectResult) string + func FormatDiff(d SnapshotDiff) string + func FormatErrors(errors []ErrorEntry) string + func FormatMultiCollect(r *MultiCollectResult) string + func FormatPlaywrightSnapshot(result *ExtractionResult) string + func FormatPreview(r *PreviewResult) string + func FormatPreviewProfile(r *PreviewResult, p RenderProfile) string + func FormatText(result *ExtractionResult) string + func FormatTextProfile(result *ExtractionResult, p RenderProfile) string + func GetResponseBodyByRequestID(page *rod.Page, requestID string) (string, bool, error) + func GhostchromeDataDirs() []string + func GrantPlaywrightPermissions(browser *rod.Browser, names []string) error + func HasSelector(page *rod.Page, selector string) bool + func HoverElement(page *rod.Page, el *rod.Element) error + func HoverRef(page *rod.Page, ref string, snapshot *PageSnapshot) error + func HumanMode() bool + func InitScriptsDir() (string, error) + func InjectCookies(page *rod.Page, cookies []CookieRecord) (int, error) + func InternalRef(ref string) string + func IsStaticNetworkEntry(resourceType, mimeType string) bool + func KillAllSessions() (int, error) + func KillProcess(pid int) error + func LauncherOwnsRodTempProfile(l *launcher.Launcher, userDataDir string, launchArgs []string) bool + func ListInitScripts() ([]string, error) + func LoadFulfillBody(value string) ([]byte, error) + func LoadRules(rulesPath, baseDir string) ([]compiledRule, error) + func LoadStorageState(browser *rod.Browser, page *rod.Page, state *StorageState) error + func MapPlaywrightPermissions(names []string) (mapped []proto.BrowserPermissionType, unsupported []string) + func MatchRule(rules []compiledRule, url, method string) (*compiledRule, bool) + func MustReadResponseBody(resp *http.Response) ([]byte, error) + func NewLauncher(opts LauncherOpts) *launcher.Launcher + func NewTab(browser *rod.Browser, url string) (*rod.Page, error) + func ParseBlockList(s string) []string + func ParseMouseButton(name string) (proto.InputMouseButton, error) + func ParseProxyList(s string) []string + func PlaywrightRef(ref string) string + func PressKey(page *rod.Page, key string, ref string, snapshot *PageSnapshot) error + func PrewarmDomains(page *rod.Page) + func ProfileUsesSystemChrome(userDataDir string) bool + func PruneSessions() (int, error) + func ReactSuspense(page *rod.Page) ([]map[string]any, error) + func RecoverBotChallenge(ctx RecoveryContext) (bool, error) + func RecoverDialogAccept(ctx RecoveryContext) (bool, error) + func RecoverNetworkSettle(ctx RecoveryContext) (bool, error) + func RecoverStaleRef(ctx RecoveryContext) (bool, error) + func RecoveryChain(ctx RecoveryContext, hooks []RecoveryHook) (retry bool, err error) + func RemoveInitScript(name string) error + func RemoveProfile(name string) error + func RenderTraceHTML(entries []TraceEntry, sourcePath string) string + func ResetEmulation(page *rod.Page) error + func ResolveByLocator(page *rod.Page, loc Locator) (*rod.Element, error) + func ResolveCDPEndpoint(raw string, timeout time.Duration) (string, error) + func ResolveProfileDir(name string) (string, error) + func ResolveRef(page *rod.Page, ref string, snapshot *PageSnapshot) (*rod.Element, error) + func SaveCookiesJSON(profileDir string, cookies []CookieRecord) error + func ScrollBy(page *rod.Page, dy int) (int, error) + func ScrollToRef(page *rod.Page, ref string, snapshot *PageSnapshot) error + func ScrollToY(page *rod.Page, y int, bottomSentinel bool) (int, error) + func SelectOption(page *rod.Page, ref string, values []string, snapshot *PageSnapshot) error + func SetCheckedRef(page *rod.Page, ref string, checked bool, snapshot *PageSnapshot) error + func SetEvadeRuntimeEnable(on bool) + func SetHumanMode(enabled bool) + func SetStealthTimezone(tz string) + func SetViewport(page *rod.Page, width, height int) error + func StopSession(name string) error + func SubmitOnElement(page *rod.Page, el *rod.Element) error + func SwitchTab(browser *rod.Browser, index int) (*rod.Page, error) + func TakeScreenshot(page *rod.Page, fullPage bool, elementRef string, quality int, ...) ([]byte, error) + func TakeScreenshotFormat(page *rod.Page, fullPage bool, elementRef string, format string, quality int, ...) ([]byte, error) + func TakeScreenshotScaled(page *rod.Page, fullPage bool, elementRef string, quality int, scale float64, ...) ([]byte, error) + func TruncateURL(u string, maxLen int) string + func TypeElement(page *rod.Page, el *rod.Element, text string) error + func TypeFocused(page *rod.Page, text string) error + func TypeRef(page *rod.Page, ref string, text string, snapshot *PageSnapshot) error + func UploadRef(page *rod.Page, ref string, selector string, files []string, ...) error + func ValidateExtractLevel(level ExtractLevel) error + func WaitForBotChallenge(page *rod.Page, timeout time.Duration) bool + func WaitForLocator(page *rod.Page, loc Locator, state ElementState, timeout time.Duration) (*rod.Element, error) + func WaitForPage(page *rod.Page, waitStrategy string) error + func WaitForRef(page *rod.Page, ref string, snapshot *PageSnapshot, state ElementState, ...) (*rod.Element, error) + func WaitForSelector(page *rod.Page, selector string, timeoutSec int) error + func WriteHAR(h *HAR, path string) error + type APIRequest struct + Body []byte + Headers map[string]string + Method string + Proxy string + Timeout time.Duration + URL string + type APIResponse struct + Body []byte + BodyText string + ContentLength int64 + Elapsed time.Duration + ElapsedMs int64 + Headers http.Header + IsJSON bool + JSON json.RawMessage + Status int + URL string + func AlgoliaQuery(ctx context.Context, opts AlgoliaOpts) (*APIResponse, error) + func FastFetchAPI(ctx context.Context, req APIRequest) (*APIResponse, error) + type AlgoliaOpts struct + APIKey string + AppID string + Endpoint string + ExtraHeaders map[string]string + Index string + Params map[string]string + ParamsForm string + Proxy string + Timeout time.Duration + type Browser struct + func NewBrowser(connectURL string, headless bool, timeoutSec int) (*Browser, error) + func NewBrowserWith(opts BrowserOpts) (*Browser, error) + func (b *Browser) Alive(d time.Duration) bool + func (b *Browser) AppendConsoleLog(events []ObserverEvent) error + func (b *Browser) AppendNetworkLog(entries []*CapturedEntry) error + func (b *Browser) BrowserTraceState() BrowserTraceState + func (b *Browser) CachedExtract(page *rod.Page) *ExtractionResult + func (b *Browser) ClearConsoleLog() error + func (b *Browser) ClearEmulationState() error + func (b *Browser) ClearNetworkLog() error + func (b *Browser) Close() + func (b *Browser) Connected() bool + func (b *Browser) ConsoleLog() []ObserverEvent + func (b *Browser) CurrentTargetID() string + func (b *Browser) DeleteSnapshot(targetID proto.TargetTargetID) error + func (b *Browser) EmulationState() EmulationState + func (b *Browser) NetworkLog() []*CapturedEntry + func (b *Browser) Page() (*rod.Page, error) + func (b *Browser) RodBrowser() *rod.Browser + func (b *Browser) SaveSnapshot(page *rod.Page, result *ExtractionResult) error + func (b *Browser) SetBrowserTraceState(state BrowserTraceState) error + func (b *Browser) SetCurrentPage(page *rod.Page) error + func (b *Browser) SetEmulationState(state EmulationState) error + func (b *Browser) SetVideoState(state VideoState) error + func (b *Browser) Snapshot(page *rod.Page) *PageSnapshot + func (b *Browser) StartBackgroundObserver(page *rod.Page) + func (b *Browser) VideoState() VideoState + type BrowserOpts struct + ApplyProfile bool + AttachFresh bool + CDPHeaders map[string]string + CDPTimeoutMS int + ConnectURL string + ContextName string + ExecutablePath string + Extensions []string + Headless bool + Invisible bool + LaunchArgs []string + ManagedSession bool + ProviderFunc func(ctx context.Context) (wsURL string, cleanup func(), err error) + Proxy string + ProxyBypass string + SystemChrome bool + TargetTabIndex *int + TimeoutSec int + UserDataDir string + type BrowserTraceState struct + Active bool + Output string + StartedAt string + type CaptureSession struct + func StartCapture(page *rod.Page, spec CaptureSpec) (*CaptureSession, error) + func (s *CaptureSession) Entries() []*CapturedEntry + func (s *CaptureSession) ReachedMax() <-chan struct{} + func (s *CaptureSession) Stop() ([]*CapturedEntry, error) + type CaptureSpec struct + ExcludeStatic bool + IncludeBody bool + Max int + MimeMatch string + OutputPath string + URLMatch string + type CapturedEntry struct + Body string + BodyBase64 bool + BodyError string + Method string + MimeType string + PostData string + ReqHeaders map[string]string + RequestID string + ResHeaders map[string]string + ResourceType string + StartedAt string + Status int + StatusText string + URL string + type CollectResult struct + ItemCount int + Items []CollectedItem + PageURL string + func Collect(page *rod.Page, limit int) (*CollectResult, error) + type CollectedItem struct + Fields map[string]string + Price string + Title string + URL string + type ContextEntry struct + ID string + type ContextRegistryEntry struct + Alive bool + ID string + Name string + Unknown bool + func ListContexts(b *rod.Browser) ([]ContextRegistryEntry, error) + func (e ContextRegistryEntry) AliveStr() string + type CookieRecord struct + Domain string + Expires float64 + HTTPOnly bool + Name string + Path string + SameSite string + Secure bool + Value string + func ExportDecryptedCookies(cookiesPath string) ([]CookieRecord, error) + func LoadCookiesJSON(profileDir string) ([]CookieRecord, error) + type Device struct + DPR float64 + Height int + Mobile bool + Name string + Touch bool + UserAgent string + Width int + func DeviceByName(name string) (Device, bool) + func ListDevices() []Device + type DialogResult struct + Action string + DefaultPrompt string + Handled bool + Message string + TimedOut bool + Type string + URL string + func HandleNextDialog(page *rod.Page, accept bool, promptText string, timeout time.Duration) (*DialogResult, error) + type DiffEntry struct + After DiffNode + Before DiffNode + type DiffNode struct + Href string + Name string + Ref string + Role string + Value string + type DiffStats struct + AddedCount int + ChangedCount int + KeptCount int + RemovedCount int + type ElementState string + const StateAttached + const StateEnabled + const StateHidden + const StateStable + const StateVisible + func ParseElementState(s string) (ElementState, error) + type EmulationState struct + ColorScheme string + DPR float64 + Device string + Height int + Mobile bool + Timezone string + Touch bool + UserAgent string + Width int + func EmulationFromDevice(d Device) EmulationState + func (s EmulationState) Empty() bool + func (s EmulationState) Summary() string + type ErrorCollector struct + func NewErrorCollector(page *rod.Page) *ErrorCollector + func (c *ErrorCollector) Close() + func (c *ErrorCollector) Errors() []ErrorEntry + type ErrorEntry struct + Level string + Message string + Method string + Source string + Status int + TimeMs int64 + Type string + func CollectErrors(page *rod.Page, url string, waitStrategy string, ...) ([]ErrorEntry, error) + type ExtractLevel string + const LevelContent + const LevelFull + const LevelSkeleton + type ExtractedNode struct + BackendNodeID proto.DOMBackendNodeID + Checked *bool + Children []ExtractedNode + Disabled bool + Href string + Level int + Name string + Ref string + Role string + Type string + Value string + type ExtractionResult struct + Nodes []ExtractedNode + Refs map[string]ExtractedNode + SSRPayloads []SSRPayload + Stats ExtractionStats + func Extract(page *rod.Page, level ExtractLevel, selector string, includeSSR bool) (*ExtractionResult, error) + func ExtractWithTimeout(page *rod.Page, level ExtractLevel, selector string, timeout time.Duration, ...) (*ExtractionResult, error) + func ExtractionForRef(result *ExtractionResult, ref string) (*ExtractionResult, bool) + func LimitExtractionDepth(result *ExtractionResult, maxDepth int) *ExtractionResult + func (r ExtractionResult) MarshalJSON() ([]byte, error) + type ExtractionStats struct + FilteredNodes int + InteractiveCount int + TotalNodes int + type FastFetchOpts struct + AcceptLanguage string + ExtraHeaders map[string]string + Proxy string + Timeout time.Duration + UserAgent string + type FastResult struct + Blocked bool + Elapsed time.Duration + HTML string + NextData []byte + Reason string + SSRPayloads []SSRPayload + Status int + URL string + func FastFetch(ctx context.Context, url string, opts FastFetchOpts) (*FastResult, error) + type HAR struct + Log HARLog + func BuildHAR(entries []NetworkEntry, pageURL, pageTitle, creatorVersion string) *HAR + type HARContent struct + MimeType string + Size int + type HARCreator struct + Name string + Version string + type HAREntry struct + Cache struct{} + PageRef string + Request HARRequest + Response HARResponse + StartedDateTime string + Time int64 + Timings HARTimings + type HARLog struct + Creator HARCreator + Entries []HAREntry + Pages []HARPage + Version string + type HARPage struct + ID string + StartedDateTime string + Title string + type HARRequest struct + BodySize int + HTTPVersion string + Headers []string + HeadersSize int + Method string + QueryString []string + URL string + type HARResponse struct + BodySize int + Content HARContent + Cookies []string + HTTPVersion string + Headers []string + HeadersSize int + RedirectURL string + Status int + StatusText string + type HARTimings struct + Receive int + Send int + Wait int64 + type HTTPClientOpts struct + Proxy string + Timeout time.Duration + type ImageDiffResult struct + DiffPath string + DiffRatio float64 + Height int + PixelsChanged int + PixelsTotal int + SkipReason string + Skipped bool + Width int + func DiffImages(baselinePNG, currentPNG []byte, tolerance int, diffPath string) (*ImageDiffResult, error) + type InterceptSession struct + func StartAntiBotBlocker(browser *rod.Browser, extraPatterns ...string) (*InterceptSession, error) + func StartIntercept(browser *rod.Browser, spec InterceptSpec) (*InterceptSession, error) + func (s *InterceptSession) Stats() *InterceptStats + func (s *InterceptSession) Stop() error + type InterceptSpec struct + BlockPatterns []string + FulfillBody []byte + FulfillContentType string + FulfillHeaders map[string]string + FulfillPattern string + FulfillStatus int + RemoveRequestHeaders []string + Rules []compiledRule + type InterceptStats struct + Blocked int + Fulfilled int + Passed int + func (s *InterceptStats) Snapshot() (blocked, fulfilled, passed int) + type LauncherOpts struct + Args []string + ExecutablePath string + Extensions []string + Headless bool + Invisible bool + Proxy string + ProxyBypass string + RemotePort int + SystemChrome bool + UserDataDir string + type Locator struct + Label string + Name string + Role string + Text string + func (l Locator) IsEmpty() bool + type MultiCollectResult struct + Sites []SiteResult + TotalItems int + TotalTimeMs int64 + func MultiCollect(browser *rod.Browser, urls []string, limit int, stealth bool, maxParallel int) *MultiCollectResult + type NetworkEntry struct + Error string + Method string + MimeType string + Size int + Status int + TimeMs int64 + URL string + type Observation struct + A11yDiff string + CaptchaHint string + ConsoleErrors []ObserverEvent + Dialog string + NetworkFailed []ObserverEvent + URL string + func BuildObservation(page *rod.Page, before, after *PageSnapshot, events []ObserverEvent) Observation + type Observer struct + func NewObserver(page *rod.Page, opts ObserverOpts) *Observer + func (o *Observer) Drain(afterMs int64) []ObserverEvent + func (o *Observer) Events() <-chan ObserverEvent + func (o *Observer) Start(ctx context.Context) error + func (o *Observer) Stats() ObserverStats + func (o *Observer) Stop() error + func (o *Observer) WriteNDJSON(ctx context.Context, w io.Writer) error + type ObserverEvent struct + Body string + BodyBase64 bool + BodyError string + DurationMs int64 + Event string + Failed string + Frame string + Kind ObserverKind + Level string + Method string + MimeType string + PostData string + ReqHeaders map[string]string + RequestID string + ResHeaders map[string]string + Size int64 + Source string + Status int + TS int64 + Text string + Type string + URL string + type ObserverFilters struct + ConsoleLevels []string + Kinds []ObserverKind + NetTypes []string + NetURLRegex *regexp.Regexp + type ObserverKind string + const KindConsole + const KindError + const KindNet + const KindPage + type ObserverOpts struct + BufferSize int + Duration time.Duration + Filters ObserverFilters + MaxEvents int + type ObserverStats struct + Console int + Dropped int + Error int + Net int + Page int + Total int + type PageInfo struct + Status int + TimeMs int64 + Title string + URL string + func Navigate(page *rod.Page, rawURL string, waitStrategy string) (*PageInfo, error) + type PageSnapshot struct + CachedExtraction *ExtractionResult + Refs map[string]RefSnapshot + TargetID string + Title string + URL string + func BuildSnapshot(page *rod.Page, result *ExtractionResult) (*PageSnapshot, error) + type PlaywrightLogState struct + Console []ObserverEvent + Network []CapturedEntry + type PreviewResult struct + DOM *ExtractionResult + Errors []ErrorEntry + Network []NetworkEntry + PageInfo *PageInfo + Summary PreviewSummary + func Preview(page *rod.Page, url string, waitStrategy string, extractLevel ExtractLevel, ...) (*PreviewResult, error) + type PreviewSummary struct + ErrorCount int + FailedRequests int + InteractiveCount int + TotalRequests int + WarningCount int + type ProfileGCCandidate struct + Bytes int64 + Modified time.Time + Name string + func GCProfiles(ttl time.Duration, dryRun bool) ([]ProfileGCCandidate, error) + type ProfileInfo struct + Bytes int64 + Name string + Path string + func ListProfiles() ([]ProfileInfo, error) + type ProxyPool struct + func NewProxyPool(entries []string) *ProxyPool + func (p *ProxyPool) Len() int + func (p *ProxyPool) Next() string + type ReactComponent struct + Children []ReactComponent + Key string + Name string + Props json.RawMessage + State json.RawMessage + Type string + func ReactTree(page *rod.Page, maxDepth int) ([]ReactComponent, error) + type Recorder struct + func NewRecorder(page *rod.Page, w io.Writer, opts RecorderOpts) *Recorder + func (r *Recorder) Done() <-chan struct{} + func (r *Recorder) Start() error + func (r *Recorder) Stop() + type RecorderOp struct + Args map[string]any + Op string + type RecorderOpts struct + IncludeHovers bool + IncludeScrolls bool + StopOnNavigate bool + type RecoveryContext struct + Err error + OpName string + Page *rod.Page + type RecoveryHook func(ctx RecoveryContext) (retry bool, err error) + func DefaultRecoveryHooks() []RecoveryHook + type RefSnapshot struct + BackendNodeID proto.DOMBackendNodeID + Name string + Role string + type RenderProfile struct + AbbrevRoles bool + Agent bool + ContentBoundary bool + DropEmptyStats bool + Format string + MaxLabelLen int + func ProfileAgent(format string) RenderProfile + func ProfileHuman(format string) RenderProfile + func ResolveProfile(explicit, format string) RenderProfile + type RuleMatchType string + const RuleMatchExact + const RuleMatchGlob + const RuleMatchRegex + type RuleSpec struct + Body string + BodyFile string + ContentType string + Headers map[string]string + Match string + MatchType RuleMatchType + Method string + Status int + type RulesFile struct + Rules []RuleSpec + type SSRPayload struct + Data json.RawMessage + IsJSON bool + Source SSRSource + Type string + func ExtractRSCPayloads(html string) []SSRPayload + func ExtractSSRPayloads(html string) []SSRPayload + type SSRSource string + const SourceApolloState + const SourceInitialState + const SourceJSONLD + const SourceNextData + const SourceNuxtData + const SourceNuxtJS + const SourcePreloaded + const SourceRSC + const SourceReduxState + type ScreenRecorder struct + func NewScreenRecorder(page *rod.Page, opts ScreenRecorderOpts) *ScreenRecorder + func (r *ScreenRecorder) FrameCount() int64 + func (r *ScreenRecorder) OutputDir() string + func (r *ScreenRecorder) Start() error + func (r *ScreenRecorder) Stop() int64 + type ScreenRecorderOpts struct + MaxHeight int + MaxWidth int + NthFrame int + OutputDir string + Quality int + type SessionEntry struct + LaunchedAt string + Name string + PID int + Port int + Profile string + WSURL string + func AttachSession(name string, wsURL string) (SessionEntry, error) + type SessionRegistryEntry struct + Alive bool + LaunchedAt string + Name string + PID int + Port int + Profile string + WSURL string + func ListSessions() ([]SessionRegistryEntry, error) + func ResolveSession(name string) (SessionRegistryEntry, error) + func (e SessionRegistryEntry) AliveStr() string + type SessionSpawnOpts struct + ConfigPath string + ExecutablePath string + Headless bool + Proxy string + ProxyBypass string + Stealth bool + type SiteResult struct + Count int + Error string + Items []CollectedItem + TimeMs int64 + URL string + type SnapshotDiff struct + Added []DiffNode + Changed map[string]DiffEntry + Removed []string + Stats DiffStats + Unchanged bool + func DiffRefs(prev, curr map[string]RefSnapshot) SnapshotDiff + type StorageCookie struct + Domain string + Expires float64 + HTTPOnly bool + Name string + Path string + SameSite string + Secure bool + Value string + type StorageKeyValue struct + Name string + Value string + type StorageOrigin struct + LocalStorage []StorageKeyValue + Origin string + type StorageState struct + Cookies []StorageCookie + Origins []StorageOrigin + func SaveStorageState(browser *rod.Browser, page *rod.Page) (*StorageState, error) + type TabInfo struct + Active bool + Index int + TargetID string + Title string + URL string + func ListTabs(browser *rod.Browser, currentTargetID string) ([]TabInfo, error) + type TraceEntry struct + Args map[string]any + DurationMs int64 + Error string + OK bool + Op string + Shot string + Summary string + TS int64 + func ReadTrace(path string, limit int) ([]TraceEntry, error) + type VideoChapter struct + AtMs int64 + CreatedAt string + Description string + DurationMs int + Title string + type VideoState struct + Active bool + Auto bool + Chapters []VideoChapter + Filename string + Size string + Source string + StartedAt string