From 2878ccbee9c5bf3078deff2b3e5d137750f5e735 Mon Sep 17 00:00:00 2001 From: Jens Grochtdreis <jens.grochtdreis@swr.de> Date: Thu, 14 Mar 2024 17:00:31 +0100 Subject: [PATCH] Screenshot Spec erweitert und korrigiert --- tests/screenshot.spec.js | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/tests/screenshot.spec.js b/tests/screenshot.spec.js index 20c8c9a..f8e9be7 100644 --- a/tests/screenshot.spec.js +++ b/tests/screenshot.spec.js @@ -1,5 +1,5 @@ const playwright = require('playwright'); -const { test} = require('@playwright/test'); +const { test,expect} = require('@playwright/test'); test("Screenshot Marketingseite", async({ page }) => { await page.goto("https://www.tatort-game.de/index.html"); @@ -8,8 +8,12 @@ test("Screenshot Marketingseite", async({ page }) => { test("SWR Startseite", async({ page }) => { await page.goto("https://www.swr.de/index.html"); - await page.screenshot({ path: "screenshots/swr/startseite-full.png", fullPage: true }); - await page.screenshot({ path: "screenshots/swr/startseite.png", fullPage: false }); + // Chill until the network is idle + await page.waitForLoadState('networkidle'); + await page.evaluate(scroll, {direction: "down", speed: "slow"}); + // await page.evaluate(scroll, {direction: "up", speed: "fast"}); + await expect(page).toHaveScreenshot({ path: "screenshots/swr/startseite.png", fullPage: false }); + await expect(page).toHaveScreenshot({ path: "screenshots/swr/startseite-full.png", fullPage: true }); }) test("SWR Logo", async({ page }) => { @@ -31,4 +35,19 @@ test("SWR Logo - multipel", async({ page }) => { test("Pagination", async({ page }) => { await page.goto("http://localhost:3020/components/preview/pagination--default"); await page.locator('.pagination').screenshot({ path: 'screenshots/swr/module/pagination/pagination.png' }); -}) \ No newline at end of file +}) + +let scroll = async (args) => { + const {direction, speed} = args; + const delay = ms => new Promise(resolve => setTimeout(resolve, ms)); + const scrollHeight = () => document.body.scrollHeight; + const start = direction === "down" ? 0 : scrollHeight(); + const shouldStop = (position) => direction === "down" ? position > scrollHeight() : position < 0; + const increment = direction === "down" ? 100 : -100; + const delayTime = speed === "slow" ? 50 : 10; + console.error(start, shouldStop(start), increment) + for (let i = start; !shouldStop(i); i += increment) { + window.scrollTo(0, i); + await delay(delayTime); + } +}; \ No newline at end of file -- GitLab