这与Opening local html file using puppeteer类似,只是一个人使用常规的Puppeteer(无头Chrome),而这个人使用the Firefox version,并且我关心对其他本地文件的引用。
>我正在尝试使用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:
和file://
作为路径的前缀。两种方法都一样。
如果URL像https://example.com
之类的远程URL可以很好地工作。
我的解决方法的第一个想法是通过使用模板库或仅使用readFile
来获取所需的HTML字符串,然后将其传递给page.setContent
。这可行,但是页面将不会加载其资产,例如本地图像文件的相对路径。我尝试用完整的file:
路径为这些资产路径添加前缀;没什么。
我将puppeteer-firefox换成了普通的puppeteer,它可以正常工作。
无头的Firefox会拒绝加载本地文件吗?还是我做错了什么?还是puppeteer-firefox中存在错误?