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")); } + }