Package com.codeborne.selenide.impl
Class ScreenShotLaboratory
- java.lang.Object
-
- com.codeborne.selenide.impl.ScreenShotLaboratory
-
@ParametersAreNonnullByDefault public class ScreenShotLaboratory extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<java.io.File>allScreenshotsprotected java.lang.ThreadLocal<java.lang.String>currentContextprotected java.lang.ThreadLocal<java.util.List<java.io.File>>currentContextScreenshotsprotected java.util.concurrent.atomic.AtomicLongscreenshotCounterprotected java.lang.ThreadLocal<java.util.List<java.io.File>>threadScreenshots
-
Constructor Summary
Constructors Modifier Constructor Description protectedScreenShotLaboratory()protectedScreenShotLaboratory(Photographer photographer, PageSourceExtractor extractor, com.codeborne.selenide.impl.Clock clock)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected java.io.FileaddToHistory(java.io.File screenshot)java.util.List<java.io.File>finishContext()java.lang.StringformatScreenShotPath(Driver driver)Deprecated.Use methodtakeScreenshot(Driver)which returns Screenshot instead of Stringprotected java.lang.StringgenerateScreenshotFileName()java.util.List<java.io.File>getContextScreenshots()static ScreenShotLaboratorygetInstance()java.util.Optional<java.io.File>getLastContextScreenshot()java.io.FilegetLastScreenshot()java.util.Optional<java.io.File>getLastThreadScreenshot()protected java.lang.StringgetScreenshotFileName(java.lang.String className, java.lang.String methodName)java.util.List<java.io.File>getScreenshots()java.util.List<java.io.File>getThreadScreenshots()protected java.io.FilesavePageImageToFile(Config config, java.lang.String fileName, Driver driver)protected java.io.FilesavePageSourceToFile(Config config, java.lang.String fileName, Driver driver)voidstartContext(java.lang.String context)voidstartContext(java.lang.String className, java.lang.String methodName)ScreenshottakeScreenshot(Driver driver)ScreenshottakeScreenshot(Driver driver, java.lang.String fileName)Takes screenshot of current browser window.java.io.FiletakeScreenshot(Driver driver, org.openqa.selenium.WebElement element)java.io.FiletakeScreenshot(Driver driver, org.openqa.selenium.WebElement iframe, org.openqa.selenium.WebElement element)java.lang.StringtakeScreenShot(Driver driver)Deprecated.usetakeScreenshot(Driver)which returnsScreenshotinstead of Stringjava.lang.StringtakeScreenShot(Driver driver, java.lang.String fileName)Deprecated.usetakeScreenshot(Driver, String)which returnsScreenshotinstead of StringScreenshottakeScreenShot(Driver driver, java.lang.String className, java.lang.String methodName)<T> TtakeScreenShot(Driver driver, org.openqa.selenium.OutputType<T> outputType)java.io.FiletakeScreenShotAsFile(Driver driver)java.awt.image.BufferedImagetakeScreenshotAsImage(Driver driver, org.openqa.selenium.WebElement element)java.awt.image.BufferedImagetakeScreenshotAsImage(Driver driver, org.openqa.selenium.WebElement iframe, org.openqa.selenium.WebElement element)
-
-
-
Field Detail
-
allScreenshots
protected final java.util.List<java.io.File> allScreenshots
-
screenshotCounter
protected java.util.concurrent.atomic.AtomicLong screenshotCounter
-
currentContext
protected java.lang.ThreadLocal<java.lang.String> currentContext
-
currentContextScreenshots
protected java.lang.ThreadLocal<java.util.List<java.io.File>> currentContextScreenshots
-
threadScreenshots
protected java.lang.ThreadLocal<java.util.List<java.io.File>> threadScreenshots
-
-
Constructor Detail
-
ScreenShotLaboratory
protected ScreenShotLaboratory()
-
ScreenShotLaboratory
protected ScreenShotLaboratory(Photographer photographer, PageSourceExtractor extractor, com.codeborne.selenide.impl.Clock clock)
-
-
Method Detail
-
getInstance
public static ScreenShotLaboratory getInstance()
-
takeScreenShot
@CheckReturnValue @Nonnull public Screenshot takeScreenShot(Driver driver, java.lang.String className, java.lang.String methodName)
-
getScreenshotFileName
@CheckReturnValue @Nonnull protected java.lang.String getScreenshotFileName(java.lang.String className, java.lang.String methodName)
-
takeScreenShot
@CheckReturnValue @Nullable @Deprecated public java.lang.String takeScreenShot(Driver driver)
Deprecated.usetakeScreenshot(Driver)which returnsScreenshotinstead of String
-
takeScreenShot
@CheckReturnValue @Nullable @Deprecated public java.lang.String takeScreenShot(Driver driver, java.lang.String fileName)
Deprecated.usetakeScreenshot(Driver, String)which returnsScreenshotinstead of StringTakes screenshot of current browser window. Stores 2 files: html of page (if "savePageSource" option is enabled), and (if possible) image in PNG format.- Parameters:
fileName- name of file (without extension) to store screenshot to.- Returns:
- the name of last saved screenshot or null if failed to create screenshot
-
takeScreenshot
@CheckReturnValue @Nonnull public Screenshot takeScreenshot(Driver driver, java.lang.String fileName)
Takes screenshot of current browser window. Stores 2 files: html of page (if "savePageSource" option is enabled), and (if possible) image in PNG format.- Parameters:
fileName- name of file (without extension) to store screenshot to.- Returns:
- instance of
Screenshotcontaining both files
-
takeScreenShot
@CheckReturnValue @Nullable public <T> T takeScreenShot(Driver driver, org.openqa.selenium.OutputType<T> outputType)
-
takeScreenshot
@CheckReturnValue @Nullable public java.io.File takeScreenshot(Driver driver, org.openqa.selenium.WebElement element)
-
takeScreenshotAsImage
@CheckReturnValue @Nullable public java.awt.image.BufferedImage takeScreenshotAsImage(Driver driver, org.openqa.selenium.WebElement element)
-
generateScreenshotFileName
@CheckReturnValue @Nonnull protected java.lang.String generateScreenshotFileName()
-
takeScreenshot
@CheckReturnValue @Nullable public java.io.File takeScreenshot(Driver driver, org.openqa.selenium.WebElement iframe, org.openqa.selenium.WebElement element)
-
takeScreenshotAsImage
@CheckReturnValue @Nullable public java.awt.image.BufferedImage takeScreenshotAsImage(Driver driver, org.openqa.selenium.WebElement iframe, org.openqa.selenium.WebElement element)
-
takeScreenShotAsFile
@CheckReturnValue @Nullable public java.io.File takeScreenShotAsFile(Driver driver)
-
addToHistory
@Nonnull protected java.io.File addToHistory(java.io.File screenshot)
-
savePageImageToFile
@CheckReturnValue @Nullable protected java.io.File savePageImageToFile(Config config, java.lang.String fileName, Driver driver)
-
savePageSourceToFile
@CheckReturnValue @Nonnull protected java.io.File savePageSourceToFile(Config config, java.lang.String fileName, Driver driver)
-
startContext
public void startContext(java.lang.String className, java.lang.String methodName)
-
startContext
public void startContext(java.lang.String context)
-
finishContext
@Nonnull public java.util.List<java.io.File> finishContext()
-
getScreenshots
@CheckReturnValue @Nonnull public java.util.List<java.io.File> getScreenshots()
-
getThreadScreenshots
@CheckReturnValue @Nonnull public java.util.List<java.io.File> getThreadScreenshots()
-
getContextScreenshots
@CheckReturnValue @Nonnull public java.util.List<java.io.File> getContextScreenshots()
-
getLastScreenshot
@CheckReturnValue @Nullable public java.io.File getLastScreenshot()
-
getLastThreadScreenshot
@CheckReturnValue @Nonnull public java.util.Optional<java.io.File> getLastThreadScreenshot()
-
getLastContextScreenshot
@CheckReturnValue @Nonnull public java.util.Optional<java.io.File> getLastContextScreenshot()
-
formatScreenShotPath
@CheckReturnValue @Nonnull @Deprecated public java.lang.String formatScreenShotPath(Driver driver)
Deprecated.Use methodtakeScreenshot(Driver)which returns Screenshot instead of String
-
takeScreenshot
@CheckReturnValue @Nonnull public Screenshot takeScreenshot(Driver driver)
-
-