diff --git a/selenium/che-selenium-core/src/main/java/org/eclipse/che/selenium/core/inject/SeleniumTestHandler.java b/selenium/che-selenium-core/src/main/java/org/eclipse/che/selenium/core/inject/SeleniumTestHandler.java index 34913e4345..28db703595 100644 --- a/selenium/che-selenium-core/src/main/java/org/eclipse/che/selenium/core/inject/SeleniumTestHandler.java +++ b/selenium/che-selenium-core/src/main/java/org/eclipse/che/selenium/core/inject/SeleniumTestHandler.java @@ -321,7 +321,7 @@ public abstract class SeleniumTestHandler Object testInstance = result.getInstance(); collectInjectedWebDrivers(testInstance, webDrivers); - webDrivers.forEach(webDriver -> captureScreenshot(result, webDriver)); + webDrivers.forEach(webDriver -> captureScreenshotsFromOpenedWindows(result, webDriver)); } private void captureHtmlSource(ITestResult result) { @@ -373,10 +373,9 @@ public abstract class SeleniumTestHandler } } - private void captureScreenshot(ITestResult result, SeleniumWebDriver webDriver) { + private void captureScreenshotFromWindow(ITestResult result, SeleniumWebDriver webDriver) { String testName = result.getTestClass().getName() + "." + result.getMethod().getMethodName(); String filename = NameGenerator.generate(testName + "_", 8) + ".png"; - try { byte[] data = webDriver.getScreenshotAs(OutputType.BYTES); Path screenshot = Paths.get(screenshotDir, filename); @@ -387,6 +386,17 @@ public abstract class SeleniumTestHandler } } + private void captureScreenshotsFromOpenedWindows( + ITestResult result, SeleniumWebDriver webDriver) { + webDriver + .getWindowHandles() + .forEach( + currentWin -> { + webDriver.switchTo().window(currentWin); + captureScreenshotFromWindow(result, webDriver); + }); + } + private void dumpHtmlCodeFromTheCurrentPage(ITestResult result, SeleniumWebDriver webDriver) { String testName = result.getTestClass().getName() + "." + result.getMethod().getMethodName(); String filename = NameGenerator.generate(testName + "_", 8) + ".html";