【问题标题】:Download file with Playwright使用 Playwright 下载文件
【发布时间】:2020-07-09 18:24:51
【问题描述】:

如何使用 Playwright 下载文件?

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

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

【问题讨论】:

  • 我知道这是一个剧作家的问题,但Download API 会是一个可行的选择吗?

标签: playwright


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    目前,上述 Chromium 特定的 sn-p 可以通过将行更改为来修复:

    const client = await context.newCDPSession(page);
    

    它使用creating CDP sessions 的新方法。

    【讨论】:

      猜你喜欢
      • 2021-03-19
      • 2021-09-25
      • 2022-10-21
      • 2022-07-14
      • 1970-01-01
      • 2022-10-02
      • 2022-10-23
      • 2022-07-12
      • 2022-01-23
      相关资源
      最近更新 更多