Функция setContent кукловода не делает сетевые запросы для статических файлов

В настоящее время я пытаюсь выяснить, как отобразить свое приложение React в браузере кукловода, чтобы в будущем я мог сделать снимок экрана и выполнить визуальный регрессионный тест. В большинстве случаев я видел, как это было достигнуто, путем запуска экспресс-сервера и обслуживания html-страницы при запросе определенной конечной точки. Однако я хотел бы избежать запуска сервера, если это возможно, и хотел бы, возможно, использовать что-то вроде ReactDOM.render в браузере кукловода, чтобы отобразить его так, как это сделал бы React.

До сих пор я пытался создать сборку приложения React, а затем с помощью api page.setContent пользователя puppeteer вывести файл index.html сборки непосредственно в браузер puppeteer. Однако, когда я делаю это, браузер ничего не отображает на экране и не делает сетевые запросы для статических файлов.

Вот как это выглядит у кукловода: браузер кукловода

Это метод с page.setContent:

const buildHTML = await fs.readFileSync('build/index.html', 'utf8');

// create a new browser tab
const page = await browser.newPage();
await page.setViewport({ width: 1920, height: 1080 });

// set page's html content with build's index.html
await page.setContent(buildHTML);

// take a screenshot
const contentLoadingPageScreenshot = await page.screenshot({fullPage: true});

Кроме того, если кто-нибудь знает, как лучше запустить тест снимка изображения без необходимости запуска сервера, пожалуйста, дайте мне знать. Спасибо.

0 ответов

С помощью ref: puppeteer doc вы можете указать для setContent параметры ожидания сетевого запроса.

await page.setContent(reuslt, {
    waitUntil: ["load","networkidle0"]
});
Другие вопросы по тегам