3

这是一个与使用 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 中是否存在错误?

4

0 回答 0