Этот вопрос похож на Открытие локального html-файла с использованием puppeteer , за исключением того, что используется обычный Puppeteer (Chrome без головы), а этот - версия Firefox , и Я забочусь о ссылках на другие локальные файлы.
Я пытаюсь открыть локальный HTML-файл с puppeteer-firefox. Вот пример кода:
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
.
Моя первая идея для обходного пути состояла в том, чтобы получить нужную мне строку HTML, используя библиотеку шаблонов или просто readFile
, а затем передать ее в page.setContent
. Это работает, но тогда страница не будет загружать свои ресурсы, такие как относительные пути к локальным файлам изображений. Я пробовал префикс этих путей активов с полным путем file:
; без разницы.
Я поменял кукловода-Firefox на обычного кукловода, и это работает.
Будет ли безголовый Firefox просто отказываться загружать локальные файлы? Или я что-то не так делаю? Или есть ошибка в puppeteer-firefox?