无头 chromedp 等到下载完成

Headless chromedp wait until download finishes

我正在使用 chromedp 浏览网站,下载系统生成的 PDF 文件。生成它们需要一段时间...代码如下所示:

        chromedp.Navigate("https://website.com/with/report/to/download"),
        // wait for download link
        chromedp.WaitReady("a.downloadLink"),
        chromedp.Click("a.downloadLink"),
        // wait some time to pull the file
        chromedp.Sleep(time.Minute),
        chromedp.Click("#close-button"),

现在我正在等待一分钟,然后关闭浏览器,但我不喜欢这样。当文件下载完成时,是否有任何方法可以控制或获得某种"event"?

很久以前就有人问过这个问题,但由于没有人回答,而且整个 chromedp 标签问题的答案都很少...这里是。

您不应该依赖于任何异步操作的时间流逝。正确下载方式见chromedp file download example 一份文件。注意他们如何 synchronize on download end.