如何使用chromedp在Chrome headless中运行?

3

我正在使用chromedp,它具有聚焦元素,填写文本等功能。Chrome 59支持跨平台无头模式,可以在无头/服务器环境下运行Chrome。要通过DevTools远程调试协议使用,请使用带有--headless命令行标志的正常Chrome二进制文件启动(Linux-only for now):

$ google-chrome --headless --disable-gpu --remote-debugging-port=9222 https://www.google.fr

如何告诉chromedp发送--headless标志以及其他标志?

2个回答

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()

// 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)
}

8

找到它。我会

c, err := cdp.New(ctxt, cdp.WithRunnerOptions(
   runner.Flag("headless", true),
   runner.Flag("disable-gpu", true)))
if err != nil {
    log.Fatal(err)
}

是的,它可以工作,但是当使用无头选项时,您必须从拆卸步骤中删除chromedp.Shutdown()和chromedp.Wait()。 - Zhivko.Kostadinov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接