Skip to content

选项构建器

🏗️ `pkg/sdk/builders.go` — 链式 With* 函数。

ScreenshotOption 是函数式选项,With* 函数返回它,组合传入 Capture

📁 源码:pkg/sdk/builders.go

常用构建器

函数说明
WithFullPage()整页截图
WithViewport(w, h)视口
WithHTML()采 HTML
WithConsoleLogs()采 Console
WithHAR()采网络 HAR
WithCookies()采 Cookies
WithTimeout(d)超时
WithDelay(d)额外等待
WithProxy(p)代理
WithUserAgent(ua)UA
WithDevice(name)设备预设
WithFormat(fmt, q)输出格式
WithOutputPath(p)输出目录
WithBlacklist(enabled)黑名单开关

完整列表见源码 builders.go

链式组合

工作原理

函数式选项,类型安全可组合

每个 With* 修改 *ScreenshotOptions

go
type ScreenshotOption func(*ScreenshotOptions)

func WithFullPage() ScreenshotOption {
    return func(o *ScreenshotOptions) { o.FullPage = true }
}

Capture 先建默认 ScreenshotOptions,依次应用各 option,再 mergeWithScreenshotOptions 合并到基线。

这种"函数式选项"模式的好处:零值即默认、可任意组合、新增选项不破坏旧调用方。

示例

go
res, _ := client.Capture("https://example.com",
    sdk.WithFullPage(),
    sdk.WithViewport(1920, 1080),
    sdk.WithHTML(),
    sdk.WithConsoleLogs(),
    sdk.WithDelay(2*time.Second),
    sdk.WithProxy("http://proxy:8080"),
)

子专题

各专项构建器有单独详解:截图视口代理Cookie指纹JS表单黑名单端口

构建器分类

按职责归类,所有 With* 构建器可归为以下几类:

下一步

基于 MIT 许可发布