Скриншот полной страницы Puppeteer, отображая лишние пробелы внизу страницы - PullRequest
0 голосов
/ 08 мая 2018

Я играю с Puppeteer v1.3.0 , чтобы создать несколько скриншотов в различных точках останова во время сборки / развертывания. Кажется, я не понимаю, как правильно создать полный скриншот страницы.

Я могу получить полный снимок экрана в точности так, как я хочу, , но мне нужно установить размеры окна просмотра дважды , что мне кажется очень странным (я просто установил произвольную высоту, затем оценил clientHeight) :

//xl
await page.setViewport({
    width: 1201,
    height: 600
});
await page.setViewport({
    width: 1201,
    height: await page.evaluate(() => document.body.clientHeight),
    isMobile: true //whether the meta viewport tag is taken into account
});
await page.screenshot({path: 'xl.png');

Я пытался установить waitUntil networkidle, просто оценил clientHeight и установил для fullPage значение true в page.screenshot:

await page.goto('my-url-here', {
    waitUntil: 'networkidle2'
});
await page.setViewport({
    width: 1201,
    height: await page.evaluate(() => document.body.clientHeight),
    isMobile: true //whether the meta viewport tag is taken into account
});
await page.screenshot({path: 'arrowdental_xl.png', fullPage: true});

И я получаю полный скриншот страницы, но в есть куча лишних пробелов внизу , которые мне не нужны.

Как правильно получить полный скриншот страницы в Puppeteer? Опять же, первый метод, описанный выше, работает, но кажется глупым, я должен дважды установить размеры области просмотра. Я хотел бы иметь более чистый код, если это возможно.

1 Ответ

0 голосов
/ 30 января 2019

С острым кукловодом v 1.11.2

await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultRevision);
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
    Headless = true,
});
var page = await browser.NewPageAsync();
await page.GoToAsync("https://www.google.com/");
await page.ScreenshotAsync(@"c:\temp\google.png", new ScreenshotOptions {FullPage = true});

поэтому передача ScreenshotOptions.FullPage в ScreenshotAsync ()

...