这是一个与使用 puppeteer 打开本地 html 文件类似的问题,除了一个使用常规 Puppeteer(无头 Chrome)而这个使用Firefox 版本,我关心对其他本地文件的引用。
我正在尝试使用 puppeteer-firefox 打开一个本地 HTML 文件。这是一些示例代码:
const pptrFirefox = require('puppeteer-firefox');
const path = require('path');
(async () => {
const browser = await pptrFirefox.launch();
const page = await browser.newPage();
await page.goto(`file:${path.join(__dirname, 'template.html')}`);
await page.screenshot({path: 'example.png'});
await browser.close();
})();
这挂在 page.screenshot 行。
我已经尝试使用file:
andfile://
作为路径的前缀。无论哪种方式都是一样的。
如果 URL 是远程的,则它可以正常工作https://example.com
。
我对解决方法的第一个想法是通过使用模板库或只是获取我想要的 HTML 字符串,readFile
然后将其传递给page.setContent
. 这可行,但是页面不会加载其资产,例如本地图像文件的相对路径。我尝试用完整file:
路径为这些资产路径添加前缀;没有不同。
我将 puppeteer-firefox 换成了普通的 puppeteer,它可以工作。
无头 Firefox 会拒绝加载本地文件吗?还是我做错了什么?或者 puppeteer-firefox 中是否存在错误?