使用 puppeteer 的时候想修改文件下载地址,在询问chatGPT后得到如下方案
const puppeteer = require('puppeteer');
const path = require('path');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// 指定下载文件的位置为当前文件夹下的 download 目录
const downloadPath = path.join(process.cwd(), 'download');
await page._client.send('Page.setDownloadBehavior', {
behavior: 'allow',
downloadPath: downloadPath,
});
await page.goto('https://example.com');
// 点击下载链接
await page.click('a.download-link');
// 等待文件下载完成
await page.waitForEvent('download');
await browser.close();
})();
但是报错 page._client.send is not a function
查询得知, puppeteer > 14 后 _client 属性 已失效,
修改下载路径的正确写法为
const client = await page.target().createCDPSession();
await client.send('Page.setDownloadBehavior', {
behavior: 'allow',
downloadPath: downloadPath,
});
```