I want to perform a visual regression test on an element which is inside a div element with overflow:auto. This means it is scrollable and does usually not fit the screen. If an element screenshot is taken, there is no option like fullPage: true for takeElementScreenshot() in testcafe. Also if I take a fullpage screenshot the #sidebar-quicklinks is cropped as well. A simple example would be:
test.page("https://developer.mozilla.org/en-US/docs/Web/CSS/Viewport_concepts")(
"2 Check Studienabschluss FE",
async (t) => {
await t.takeScreenshot({
path: "pre_post/2.png",
fullPage: true,
});
await t.takeElementScreenshot("#sidebar-quicklinks", "pre_post/3.png", {
includeMargins: true,
});
}
);
How can I take a full screenshot of teh element #sidebar-quicklinks in testcafe? I was thinking about changing the resoltion of the window with resizeWindow() but this might break video capture if I am not mistaken.
Thanks for your help.
The
takeElementScreenshotmethod cannot capture the full element if it extends beyond the viewport. However, you can capture a full-page screenshot without cropping#sidebar-quicklinks. To achieve this, you need to modify the styles of.sidebar-containerand#sidebar-quicklinksvia ClientFunction, and then take a full-page screenshot: