使用 Playwright 下载文件

Download file with Playwright

如何使用 Playwright 下载文件?

我知道这个问题 How to catch a download with playwright? 但该示例代码不起作用。使用最新发布的Playwright,浏览器实例上没有'pageTarget'功能:

const client = await browser.pageTarget(page).createCDPSession();

Playwright 即将支持以跨浏览器兼容的方式下载,您可以跟踪这个feature request

目前,可以通过将行更改为以下内容来修复上述特定于 Chromium 的代码段:

const client = await context.newCDPSession(page);

使用 creating CDP sessions 的新方法。

所有属于浏览器上下文的下载文件在浏览器上下文关闭时被删除。当浏览器关闭时,所有下载的文件都会被删除。

下载开始后会触发下载事件。下载完成后下载路径可用:

const [ download ] = await Promise.all([
  page.waitForEvent('download'), // wait for download to start
  page.click('a')
]);
// wait for download to complete
const path = await download.path();
...

https://github.com/microsoft/playwright/blob/master/docs/api.md#class-download