使用 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
如何使用 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