@@ -118,7 +118,7 @@ extractor.BrowserOptions{
|
|||||||
Browser: extractor.BrowserFirefox, // or BrowserChromium, BrowserWebKit
|
Browser: extractor.BrowserFirefox, // or BrowserChromium, BrowserWebKit
|
||||||
Timeout: &timeout, // default 30s, 0 for no timeout
|
Timeout: &timeout, // default 30s, 0 for no timeout
|
||||||
CookieJar: jar, // load/save cookies automatically
|
CookieJar: jar, // load/save cookies automatically
|
||||||
ShowBrowser: true, // show browser window (non-headless)
|
ShowBrowser: extractor.Bool(true), // show browser window (non-headless)
|
||||||
Dimensions: extractor.Size{1280, 720},
|
Dimensions: extractor.Size{1280, 720},
|
||||||
DarkMode: true,
|
DarkMode: true,
|
||||||
ServerAddress: "ws://...", // remote Playwright server
|
ServerAddress: "ws://...", // remote Playwright server
|
||||||
|
|||||||
@@ -70,8 +70,9 @@ func initBrowser(opt BrowserOptions) (*browserInitResult, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if launch {
|
if launch {
|
||||||
|
headless := opt.ShowBrowser == nil || !*opt.ShowBrowser
|
||||||
browser, err = bt.Launch(playwright.BrowserTypeLaunchOptions{
|
browser, err = bt.Launch(playwright.BrowserTypeLaunchOptions{
|
||||||
Headless: playwright.Bool(!opt.ShowBrowser),
|
Headless: playwright.Bool(headless),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to launch browser: %w", err)
|
return nil, fmt.Errorf("failed to launch browser: %w", err)
|
||||||
@@ -154,7 +155,9 @@ func mergeOptions(base BrowserOptions, opts []BrowserOptions) BrowserOptions {
|
|||||||
if o.UseLocalOnly {
|
if o.UseLocalOnly {
|
||||||
base.UseLocalOnly = true
|
base.UseLocalOnly = true
|
||||||
}
|
}
|
||||||
base.ShowBrowser = o.ShowBrowser
|
if o.ShowBrowser != nil {
|
||||||
|
base.ShowBrowser = o.ShowBrowser
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return base
|
return base
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,9 @@ func FromCommand(ctx context.Context, cmd *cli.Command) (extractor.Browser, erro
|
|||||||
opts.CookieJar = cookies
|
opts.CookieJar = cookies
|
||||||
}
|
}
|
||||||
|
|
||||||
opts.ShowBrowser = cmd.Bool("visible")
|
if cmd.IsSet("visible") {
|
||||||
|
opts.ShowBrowser = extractor.Bool(cmd.Bool("visible"))
|
||||||
|
}
|
||||||
|
|
||||||
return extractor.NewBrowser(ctx, opts)
|
return extractor.NewBrowser(ctx, opts)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ func NewInteractiveBrowser(ctx context.Context, opts ...BrowserOptions) (Interac
|
|||||||
var thirtySeconds = 30 * time.Second
|
var thirtySeconds = 30 * time.Second
|
||||||
opt := mergeOptions(BrowserOptions{
|
opt := mergeOptions(BrowserOptions{
|
||||||
UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0) Gecko/20100101 Firefox/142.0",
|
UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:142.0) Gecko/20100101 Firefox/142.0",
|
||||||
Browser: BrowserChromium,
|
Browser: BrowserFirefox,
|
||||||
Timeout: &thirtySeconds,
|
Timeout: &thirtySeconds,
|
||||||
Dimensions: Size{
|
Dimensions: Size{
|
||||||
Width: 1280,
|
Width: 1280,
|
||||||
|
|||||||
@@ -36,6 +36,9 @@ const (
|
|||||||
BrowserWebKit BrowserSelection = "webkit"
|
BrowserWebKit BrowserSelection = "webkit"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Bool returns a pointer to the given bool value.
|
||||||
|
func Bool(v bool) *bool { return &v }
|
||||||
|
|
||||||
type Size struct {
|
type Size struct {
|
||||||
Width int
|
Width int
|
||||||
Height int
|
Height int
|
||||||
@@ -49,7 +52,7 @@ type BrowserOptions struct {
|
|||||||
// browser into the cookie jar for each request.
|
// browser into the cookie jar for each request.
|
||||||
CookieJar
|
CookieJar
|
||||||
|
|
||||||
ShowBrowser bool // If false, browser will be headless
|
ShowBrowser *bool // If nil, defaults to false (headless). Set to ptr to override.
|
||||||
|
|
||||||
Dimensions Size
|
Dimensions Size
|
||||||
DarkMode bool
|
DarkMode bool
|
||||||
|
|||||||
Reference in New Issue
Block a user