除了使用chromedp提供的等待页面加载完成的方式,还可以使用Go语言的内置库time,在页面加载完成之前进行等待。具体代码如下:

package main

import (
	"context"
	"log"
	"time"

	"github.com/chromedp/chromedp"
)

func main() {
	// 创建上下文
	ctx, cancel := chromedp.NewContext(context.Background())
	defer cancel()

	// 加载页面
	if err := chromedp.Run(ctx, chromedp.Navigate("https://www.baidu.com")); err != nil {
		log.Fatal(err)
	}

	// 等待页面加载完成
	time.Sleep(3 * time.Second)

	// 截屏并保存为png
	var buf []byte
	if err := chromedp.Run(ctx, chromedp.CaptureScreenshot(&buf)); err != nil {
		log.Fatal(err)
	}
	if err := ioutil.WriteFile("screenshot.png", buf, 0644); err != nil {
		log.Fatal(err)
	}
}

这段代码使用time.Sleep(3 * time.Second)进行等待,等待3秒后再进行截屏。但是这种方式不太可靠,如果页面加载过慢或者网络不稳定,可能会导致截屏失败。因此建议还是使用chromedp提供的等待页面加载完成的方式。

chromedp等待页面加载完成还有其他方式吗举个代码的例子

原文地址: https://www.cveoy.top/t/topic/bIID 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录