Skip to content

Commit

Permalink
Add optional parameter to bypass puppeteer.
Browse files Browse the repository at this point in the history
  • Loading branch information
DaemonCahill committed Jul 10, 2024
1 parent d2160c1 commit 418bb3b
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/page-objects/full-page-screenshot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,9 @@ export async function scrollAndMergeStrategy(browser: WebdriverIO.Browser) {
return mergeImages(screenshots, width * pixelRatio, height * pixelRatio, lastImageOffset * pixelRatio, offsetTop);
}

export default async function fullPageScreenshot(browser: WebdriverIO.Browser) {
export default async function fullPageScreenshot(browser: WebdriverIO.Browser, forceScrollAndMerge: boolean = false) {
const puppeteer = await getPuppeteer(browser);
if (puppeteer) {
if (puppeteer && !forceScrollAndMerge) {
// casting due to mismatch in NodeJS types of EventEmitter
return puppeteerStrategy(browser, puppeteer as unknown as PuppeteerBrowser);
}
Expand Down
6 changes: 5 additions & 1 deletion src/page-objects/screenshot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ import { ElementOffset, ScreenshotCapturingOptions, ScreenshotWithOffset } from
import fullPageScreenshot from './full-page-screenshot';

export default class ScreenshotPageObject extends BasePageObject {
constructor(browser: WebdriverIO.Browser, public readonly forceScrollAndMerge: boolean = false) {
super(browser);
}

async focusNextElement() {
return this.keys('Tab');
}
Expand All @@ -24,7 +28,7 @@ export default class ScreenshotPageObject extends BasePageObject {
const scrollPosition = await this.getWindowScroll();
// Wait for the page to settle before taking a screenshot
await this.waitForJsTimers();
const screenshot = await fullPageScreenshot(this.browser);
const screenshot = await fullPageScreenshot(this.browser, this.forceScrollAndMerge);
// restore scroll position
await this.windowScrollTo(scrollPosition);
return screenshot;
Expand Down

0 comments on commit 418bb3b

Please sign in to comment.