英文:
How to use Chrome headless with chromedp?
问题
我正在使用 chromedp,它具有聚焦元素、填写文本等功能。Chrome 59 支持跨平台无头模式,可以在无头/服务器环境中运行 Chrome。要通过 DevTools 远程调试协议使用,需要在正常的 Chrome 二进制文件上使用 --headless 命令行标志(目前仅适用于 Linux):
> $ google-chrome --headless --disable-gpu --remote-debugging-port=9222 https://www.google.fr
我该如何告诉 chromedp
发送 --headless 标志以及其他标志?
英文:
I'm using chromedp, which has features to focus on elements, fill in text, etc. Chrome 59 has cross-platform headless support. It allows running Chrome in a headless/server environment. To use via the DevTools remote debugging protocol, start a normal Chrome binary with the --headless command line flag (Linux-only for now):
> $ google-chrome --headless --disable-gpu --remote-debugging-port=9222 https://www.google.fr
How can I tell chromedp
to send the --headless flag, along with other flags?
答案1
得分: 11
在最新版本的chromedp中,默认情况下是启用无头模式的。如果你想要改变这个设置,请参考下面的代码片段:
opts := append(chromedp.DefaultExecAllocatorOptions[:],
chromedp.Flag("headless", false),
chromedp.Flag("disable-gpu", false),
chromedp.Flag("enable-automation", false),
chromedp.Flag("disable-extensions", false),
)
allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
defer cancel()
// 创建上下文
ctx, cancel := chromedp.NewContext(allocCtx, chromedp.WithLogf(log.Printf))
defer cancel()
if err := chromedp.Run(ctx,
chromedp.Navigate(`https://www.google.com/`),
); err != nil {
log.Fatal(err)
}
以上代码片段可以用于修改chromedp的默认设置,以在启动时禁用无头模式。
英文:
In the latest version of chromedp, by default the headless mode is true, if you want to change then refer the below snippet
opts := append(chromedp.DefaultExecAllocatorOptions[:],
chromedp.Flag("headless", false),
chromedp.Flag("disable-gpu", false),
chromedp.Flag("enable-automation", false),
chromedp.Flag("disable-extensions", false),
)
allocCtx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
defer cancel()
// create context
ctx, cancel := chromedp.NewContext(allocCtx, chromedp.WithLogf(log.Printf))
defer cancel()
if err := chromedp.Run(ctx,
chromedp.Navigate(`https://www.google.com/`),
); err != nil {
log.Fatal(err)
}
答案2
得分: 8
找到它。我做
c, err := cdp.New(ctxt, cdp.WithRunnerOptions(
runner.Flag("headless", true),
runner.Flag("disable-gpu", true)))
if err != nil {
log.Fatal(err)
}
英文:
Find It. I do
c, err := cdp.New(ctxt, cdp.WithRunnerOptions(
runner.Flag("headless", true),
runner.Flag("disable-gpu", true)))
if err != nil {
log.Fatal(err)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论