puppeteer headless: true 无法下载文件
时间: 2023-08-19 07:05:22 浏览: 248
如果在 Puppeteer 中将 `headless` 设置为 `true`,可能会导致无法下载文件。这是因为 Chrome 在无头模式下默认禁用了文件下载。
为了解决这个问题,你可以尝试以下两种方法:
1. 修改 Chrome 启动参数:在 Puppeteer 的 `launch` 方法中,你可以传递一个 `args` 数组来设置 Chrome 的启动参数。尝试添加 `--disable-gpu`、`--disable-software-rasterizer` 和 `--disable-dev-shm-usage` 参数,这些参数可以帮助解决文件下载问题。示例代码如下:
```javascript
const puppeteer = require('puppeteer');
async function downloadFile() {
const browser = await puppeteer.launch({
headless: true,
args: [
'--disable-gpu',
'--disable-software-rasterizer',
'--disable-dev-shm-usage'
]
});
const page = await browser.newPage();
// 其他操作...
await browser.close();
}
downloadFile();
```
2. 使用无头 Chrome 的可执行文件:Puppeteer 提供了一个 `executablePath` 选项,可以指定使用自定义的 Chrome 可执行文件路径。你可以下载一个适用于你系统的 Chrome 可执行文件,并将其路径指定给 `executablePath`。这样,你就可以使用具有默认文件下载功能的完整版 Chrome 运行 Puppeteer。
```javascript
const puppeteer = require('puppeteer');
async function downloadFile() {
const browser = await puppeteer.launch({
headless: true,
executablePath: '/path/to/chrome/executable'
});
const page = await browser.newPage();
// 其他操作...
await browser.close();
}
downloadFile();
```
请根据你的需求选择其中一种方法尝试解决文件下载问题。希望能帮到你!如有其他问题,请随时提问。
阅读全文