3

如何使用 Playwright 下载文件?

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

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

2 回答 2

3

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

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

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

于 2020-04-09T06:49:31.037 回答
0

Playwright 即将支持跨浏览器兼容的下载方式,您可以跟踪此功能请求

现在,可以通过将行更改为:

const client = await context.newCDPSession(page);

它使用创建 CDP 会话的新方法。

于 2020-03-30T17:41:20.973 回答