From cff7fab04955475406e34785d2b01f40d0290561 Mon Sep 17 00:00:00 2001 From: Bhanu Pratap Singh <52821836+bhanu-webkul@users.noreply.github.com> Date: Thu, 6 Feb 2020 16:05:02 +0530 Subject: [PATCH] Update TakesScreenshotTest.java FileUtils.copyFile(screenshot, new File("./target/" + driver + "-screenshot.png")); its outdated code , so i have added new code and added time stamp so every time screen shot would be saved with unique name. --- .../scenarios/TakesScreenshotTest.java | 66 ++++++++++++++++--- 1 file changed, 56 insertions(+), 10 deletions(-) diff --git a/web-driver-2-more-scenarios/src/test/java/com/in28minutes/webdriver/scenarios/TakesScreenshotTest.java b/web-driver-2-more-scenarios/src/test/java/com/in28minutes/webdriver/scenarios/TakesScreenshotTest.java index 1c593a7..fdb2b3d 100644 --- a/web-driver-2-more-scenarios/src/test/java/com/in28minutes/webdriver/scenarios/TakesScreenshotTest.java +++ b/web-driver-2-more-scenarios/src/test/java/com/in28minutes/webdriver/scenarios/TakesScreenshotTest.java @@ -1,29 +1,75 @@ package com.in28minutes.webdriver.scenarios; +import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; +import java.util.Date; +import java.util.concurrent.TimeUnit; + +import javax.imageio.ImageIO; -import org.apache.commons.io.FileUtils; import org.openqa.selenium.By; import org.openqa.selenium.OutputType; +import org.openqa.selenium.Point; import org.openqa.selenium.TakesScreenshot; -import org.testng.annotations.Test; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.io.FileHandler; + +public class capturingScreenshot { + + public static WebDriver driver; + + private static void captureScreenshot() throws IOException { + + Date d = new Date(); + + String FileName = d.toString().replace(":", "_").replace(" ", "_") + ".png"; -import com.in28minutes.webdriver.basics.AbstractChromeWebDriverTest; + File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); + + FileHandler.copy(screenshot, new File("./target/" + FileName)); + + } + + public static void captureeleschreenshot(WebElement ele) throws IOException { + + Date d = new Date(); + + String FileName = d.toString().replace(":", "_").replace(" ", "_") + ".png"; + + File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); -public class TakesScreenshotTest extends AbstractChromeWebDriverTest { + BufferedImage fullimg = ImageIO.read(screenshot); + + Point point = ele.getLocation(); + + int elewidth = ele.getSize().getWidth(); + int eleheight = ele.getSize().getHeight(); + + BufferedImage elescreenshot = fullimg.getSubimage(point.getX(), point.getY(), elewidth, eleheight); + ImageIO.write(elescreenshot, "png", screenshot); + + File screenshotLocation = new File("./target/"+ FileName); + + FileHandler.copy(screenshot, screenshotLocation); + + } + + public class TakesScreenshotTest extends AbstractChromeWebDriverTest { @Test public void testFrames() throws IOException { driver.get("http://localhost:8080/pages/frames-example.html"); - //Operations + captureScreenshot() + + driver.navigate().to("https://webkul.com/about-us/our-team/"); + WebElement ele = driver.findElement(By.xpath("/html[1]/body[1]/section[2]/div[2]/div[3]/div[47]/div[1]")); + captureeleschreenshot(ele); - File screenshot = ((TakesScreenshot)driver) - .getScreenshotAs(OutputType.FILE); - - FileUtils.copyFile(screenshot, - new File("./target/" + driver + "-screenshot.png")); } + }