Skip to content

Commit 80af705

Browse files
Merge pull request #49 from iamcharankumar/fb_viewport
Implemented Viewport Screenshot Strategy.
2 parents ee77673 + 641275e commit 80af705

3 files changed

Lines changed: 26 additions & 2 deletions

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package io.swaglabs.portal.qa.screenshotsmanager;
2+
3+
import com.microsoft.playwright.Page;
4+
import lombok.RequiredArgsConstructor;
5+
6+
import java.nio.file.Paths;
7+
8+
@RequiredArgsConstructor
9+
public class ViewportScreenshotStrategy implements ScreenshotStrategy {
10+
11+
private final Page PAGE;
12+
13+
@Override
14+
public void capture(String filePath) {
15+
PAGE.screenshot(new Page.ScreenshotOptions().setPath(Paths.get(filePath)).setFullPage(false));
16+
}
17+
}

src/main/java/io/swaglabs/portal/qa/utils/ScreenshotsUtils.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.swaglabs.portal.qa.screenshotsmanager.ElementScreenshotStrategy;
77
import io.swaglabs.portal.qa.screenshotsmanager.FullPageScreenshotStrategy;
88
import io.swaglabs.portal.qa.screenshotsmanager.ScreenshotContext;
9+
import io.swaglabs.portal.qa.screenshotsmanager.ViewportScreenshotStrategy;
910
import lombok.AccessLevel;
1011
import lombok.NoArgsConstructor;
1112

@@ -29,10 +30,16 @@ public static ScreenshotsUtils getInstance() {
2930
return instance;
3031
}
3132

32-
public ScreenshotContext getFullPageScreenshotContext(Page page) {
33+
public ScreenshotContext takeFullPageScreenshotContext(Page page) {
34+
Objects.requireNonNull(page, "Page cannot be null.");
3335
return new ScreenshotContext(new FullPageScreenshotStrategy(page));
3436
}
3537

38+
public ScreenshotContext takeViewportScreenshotContext(Page page) {
39+
Objects.requireNonNull(page, "Page cannot be null.");
40+
return new ScreenshotContext(new ViewportScreenshotStrategy(page));
41+
}
42+
3643
public void takeElementScreenshot(Locator locator, String fileName) {
3744
Objects.requireNonNull(locator, "Locator cannot be null.");
3845
Objects.requireNonNull(fileName, "File name cannot be null.");

src/test/java/io/swaglabs/portal/qa/listeners/WebTestListeners.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ private void takeScreenshot(ITestResult testResult) {
7171
String filePath = Paths.get(dirPath, fileName).toString();
7272
try {
7373
Files.createDirectories(Paths.get(dirPath));
74-
WebPortalConstants.SCREENSHOTS_UTILS.getFullPageScreenshotContext(currentPage).captureScreenshot(filePath);
74+
WebPortalConstants.SCREENSHOTS_UTILS.takeFullPageScreenshotContext(currentPage).captureScreenshot(filePath);
7575
} catch (IOException e) {
7676
log.error("Screenshot failed for {}: {}", testName, e.getMessage());
7777
}

0 commit comments

Comments
 (0)