Fallback to body if documentElement not available

This commit is contained in:
Saoud Rizwan
2024-09-22 07:42:50 -04:00
parent 47d5902ef9
commit 1528aeb3dd

View File

@@ -131,7 +131,15 @@ export class UrlContentFetcher {
}).catch(() => {})
// image cannot exceed 8_000 pixels
const pageHeight = await this.page.evaluate(() => document.documentElement.scrollHeight)
const { pageHeight, pageWidth } = await this.page.evaluate(() => {
const html: HTMLElement | null = document.documentElement
const body: HTMLElement | null = document.body
return {
pageHeight: html?.scrollHeight || body?.scrollHeight,
pageWidth: html?.clientWidth || body?.clientWidth,
}
})
// const defaultViewport = this.page.viewport(); // width 800 height 600 by default
let options: ScreenshotOptions = {
// fullPage: true, // clip and fullPage are mutually exclusive
encoding: "base64",
@@ -139,7 +147,7 @@ export class UrlContentFetcher {
clip: {
x: 0,
y: 0,
width: await this.page.evaluate(() => document.documentElement.clientWidth),
width: pageWidth,
height: Math.min(pageHeight, 8_000),
},
}