Java 类org.openqa.selenium.OutputType 实例源码

项目:Sqawsh    文件:SharedDriver.java   
@After
public void embedScreenshot(Scenario scenario) {
  try {
    if (!scenario.isFailed()) {
      // Take a screenshot only in the failure case
      return;
    }

    String webDriverType = System.getProperty("WebDriverType");
    if (!webDriverType.equals("HtmlUnit")) {
      // HtmlUnit does not support screenshots
      byte[] screenshot = getScreenshotAs(OutputType.BYTES);
      scenario.embed(screenshot, "image/png");
    }
  } catch (WebDriverException somePlatformsDontSupportScreenshots) {
    scenario.write(somePlatformsDontSupportScreenshots.getMessage());
  }
}
项目:bdd-test-automation-for-mobile    文件:SetupTeardownSteps.java   
@After
public void tearDown(Scenario scenario) {
    if (scenario.isFailed()) {
        try {
            logger.info("Test failed, taking screenshot");
            byte[] screenshot = ((TakesScreenshot) new Augmenter().augment(getAppiumDriver()))
                    .getScreenshotAs(OutputType.BYTES);
            scenario.embed(screenshot, "image/png");
        }
        catch (WebDriverException wde) {
            System.err.println(wde.getMessage());
        }
        catch (ClassCastException cce) {
            cce.printStackTrace();
        }
    }
    application.tearDown();
}
项目:marathonv5    文件:JavaDriverTest.java   
public void screenshot() throws Throwable {
    try {
        driver = new JavaDriver();
        SwingUtilities.invokeAndWait(new Runnable() {
            @Override public void run() {
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
        if (driver instanceof TakesScreenshot) {
            Thread.sleep(1000);
            File screenshotAs = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
            System.out.println(screenshotAs.getAbsolutePath());
            Thread.sleep(20000);
        }
    } finally {
        JavaElementFactory.reset();
    }
}
项目:Gospy    文件:SeleniumDemo.java   
public static void main(String[] args) {
    String phantomJsPath = "D:/Program Files/PhantomJS/phantomjs-2.1.1-windows/bin/phantomjs.exe";
    String savePath = "D:/screenshot.png";
    Gospy.custom()
            .setScheduler(Schedulers.VerifiableScheduler.custom()
                    .setPendingTimeInSeconds(60).build())
            .addFetcher(Fetchers.TransparentFetcher.getDefault())
            .addProcessor(Processors.PhantomJSProcessor.custom()
                    .setPhantomJsBinaryPath(phantomJsPath)
                    .setWebDriverExecutor((page, webDriver) -> {
                        TakesScreenshot screenshot = (TakesScreenshot) webDriver;
                        File src = screenshot.getScreenshotAs(OutputType.FILE);
                        FileUtils.copyFile(src, new File(savePath));
                        System.out.println("screenshot has been saved to " + savePath);
                        return new Result<>();
                    })
                    .build())
            .build().addTask("phantomjs://http://www.zhihu.com").start();
}
项目:zucchini    文件:ScreenshotHook.java   
public static void createScreenshot(String fileName) {

        if (SeleniumDriver.getInstance() instanceof TakesScreenshot) {

            File fileSrc = ((TakesScreenshot) SeleniumDriver.getInstance()).getScreenshotAs(OutputType.FILE);

            try {
                File destFile = new File(String.format(SCREENSHOTS_FORMAT, fileName));
                FileUtils.copyFile(fileSrc, destFile);
                LOG.info("[Screenshot] " + destFile.getAbsolutePath());
            } catch (IOException e) {
                ;
            }
        }

    }
项目:vaadin-016-helloworld-14    文件:WebDriverFunctions.java   
static Consumer<WebDriver> takeScreenShot() {
    return (webDriver) -> {
        //take Screenshot
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        try {
            outputStream.write(((TakesScreenshot) webDriver).getScreenshotAs(OutputType.BYTES));
            //write to target/screenshot-[timestamp].jpg
            final FileOutputStream out = new FileOutputStream("target/screenshot-" + LocalDateTime.now() + ".png");
            out.write(outputStream.toByteArray());
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    };
}
项目:Cognizant-Intelligent-Test-Scripter    文件:SeleniumDriver.java   
public File createScreenShot() {
    try {
        if (driver == null) {
            System.err.println("Report Driver[" + runContext.BrowserName + "]  is not initialized");
        } else if (isAlive()) {
            if (alertPresent()) {
                System.err.println("Couldn't take ScreenShot Alert Present in the page");
                return ((TakesScreenshot) (new EmptyDriver())).getScreenshotAs(OutputType.FILE);
            } else if (driver instanceof MobileDriver || driver instanceof ExtendedHtmlUnitDriver
                    || driver instanceof EmptyDriver) {
                return ((TakesScreenshot) (driver)).getScreenshotAs(OutputType.FILE);
            } else {
                return createNewScreenshot();
            }
        }
    } catch (DriverClosedException ex) {
        System.err.println("Couldn't take ScreenShot Driver is closed or connection is lost with driver");
    }
    return null;
}
项目:POM_HYBRID_FRAMEOWRK    文件:ReportManager.java   
private static String captureScreenshot(WebDriver driver, String screenshotPath, String ScreenshotName) {

        String destinationPath = null;
        try {
            File destFolder = new File(screenshotPath);

            destinationPath = destFolder.getCanonicalPath() + "/" + ScreenshotName + ".png";

            // Cast webdriver to Screenshot
            TakesScreenshot screenshot = (TakesScreenshot) driver;

            File sourceFile = screenshot.getScreenshotAs(OutputType.FILE);

            FileUtils.copyFile(sourceFile, new File(destinationPath));

        } catch (Exception e) {
            System.out.println("Error capturing screenshot...\n" + e.getMessage());
            e.printStackTrace();
        }
        return destinationPath;
    }
项目:bootstrap    文件:TAbstractSeleniumTest.java   
@SuppressWarnings("unchecked")
@Override
protected void prepareDriver() throws Exception {
    System.clearProperty("test.selenium.remote");
    localDriverClass = WebDriverMock.class.getName();
    remoteDriverClass = WebDriverMock.class.getName();
    scenario = "sc";
    super.prepareDriver();
    mockDriver = Mockito.mock(WebDriverMock.class);
    Mockito.when(mockDriver.getScreenshotAs(ArgumentMatchers.any(OutputType.class)))
            .thenReturn(new File(Thread.currentThread().getContextClassLoader().getResource("log4j2.json").toURI()));
    final Options options = Mockito.mock(Options.class);
    Mockito.when(options.window()).thenReturn(Mockito.mock(Window.class));
    Mockito.when(mockDriver.manage()).thenReturn(options);
    final WebElement webElement = Mockito.mock(WebElement.class);
    Mockito.when(mockDriver.findElement(ArgumentMatchers.any(By.class))).thenReturn(webElement);
    Mockito.when(webElement.isDisplayed()).thenReturn(true);
    this.driver = mockDriver;
}
项目:bootstrap    文件:TAbstractParallelSeleniumTest.java   
@SuppressWarnings("unchecked")
@Override
protected void prepareDriver() throws Exception {
    testName = Mockito.mock(TestName.class);
    Mockito.when(testName.getMethodName()).thenReturn("mockTest");
    System.clearProperty("test.selenium.remote");
    localDriverClass = WebDriverMock.class.getName();
    remoteDriverClass = WebDriverMock.class.getName();
    scenario = "sc";
    super.prepareDriver();
    mockDriver = Mockito.mock(WebDriverMock.class);
    Mockito.when(((WebDriverMock) mockDriver).getScreenshotAs(ArgumentMatchers.any(OutputType.class))).thenReturn(
            new File(Thread.currentThread().getContextClassLoader().getResource("log4j2.json").toURI()));
    final Options options = Mockito.mock(Options.class);
    Mockito.when(options.window()).thenReturn(Mockito.mock(Window.class));
    Mockito.when(mockDriver.manage()).thenReturn(options);
    final WebElement webElement = Mockito.mock(WebElement.class);
    Mockito.when(mockDriver.findElement(ArgumentMatchers.any(By.class))).thenReturn(webElement);
    Mockito.when(webElement.isDisplayed()).thenReturn(true);
    this.driver = mockDriver;
}
项目:bootstrap    文件:TAbstractSequentialSeleniumTest.java   
@SuppressWarnings("unchecked")
@Override
protected void prepareDriver() throws Exception {
    testName = Mockito.mock(TestName.class);
    Mockito.when(testName.getMethodName()).thenReturn("mockTest");
    System.clearProperty("test.selenium.remote");
    localDriverClass = WebDriverMock.class.getName();
    remoteDriverClass = WebDriverMock.class.getName();
    scenario = "sc";
    super.prepareDriver();
    mockDriver = Mockito.mock(WebDriverMock.class);
    Mockito.when(((WebDriverMock) mockDriver).getScreenshotAs(ArgumentMatchers.any(OutputType.class))).thenReturn(
            new File(Thread.currentThread().getContextClassLoader().getResource("log4j2.json").toURI()));
    final Options options = Mockito.mock(Options.class);
    Mockito.when(options.window()).thenReturn(Mockito.mock(Window.class));
    Mockito.when(mockDriver.manage()).thenReturn(options);
    final WebElement webElement = Mockito.mock(WebElement.class);
    Mockito.when(mockDriver.findElement(ArgumentMatchers.any(By.class))).thenReturn(webElement);
    Mockito.when(webElement.isDisplayed()).thenReturn(true);
    this.driver = mockDriver;
}
项目:bootstrap    文件:TAbstractRepeatableSeleniumTest.java   
@SuppressWarnings("unchecked")
@Override
protected void prepareDriver() throws Exception {
    System.clearProperty("test.selenium.remote");
    localDriverClass = WebDriverMock.class.getName();
    remoteDriverClass = WebDriverMock.class.getName();
    scenario = "sc";
    super.prepareDriver();
    mockDriver = Mockito.mock(WebDriverMock.class);
    Mockito.when(mockDriver.getScreenshotAs(ArgumentMatchers.any(OutputType.class))).thenReturn(
            new File(Thread.currentThread().getContextClassLoader().getResource("log4j2.json").toURI()));
    final Options options = Mockito.mock(Options.class);
    Mockito.when(options.window()).thenReturn(Mockito.mock(Window.class));
    Mockito.when(mockDriver.manage()).thenReturn(options);
    final WebElement webElement = Mockito.mock(WebElement.class);
    Mockito.when(mockDriver.findElement(ArgumentMatchers.any(By.class))).thenReturn(webElement);
    Mockito.when(webElement.isDisplayed()).thenReturn(true);
    this.driver = mockDriver;
}
项目:Actitime-Framework    文件:ReportNGReport.java   
/**
 * This method captures a screenshot
 **/
public static void captureScreenshot(WebDriver driver, String screenshotName) {
    try {
        TakesScreenshot ts = (TakesScreenshot) driver;
        File source = ts.getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(source, new File(dirPath + "/ " + screenshotName
                + "_" + strDateStamp

                + ".png"));
        String ESCAPE_PROPERTY = "org.uncommons.reportng.escape-output";
        System.setProperty(ESCAPE_PROPERTY, "false");
        URL path = new File(dirPath + "/ " + screenshotName + "_"
                + strDateStamp + ".png").toURI().toURL();
        String test = "<a href=" + path + "> click to open screenshot of "
                + screenshotName + "</a>";
        Reporter.log(screenshotName + test + "<br>");
        Reporter.log("<br>");
    }

    catch (Exception e) {
        System.out.println("Exception while taking screenshot "
                + e.getMessage());
    }
}
项目:Habanero    文件:ScreenShotHook.java   
/**
 * <p>
 * Takes screen-shot if the scenario fails
 * </p>
 *
 * @param scenario will be the individual scenario's within the Feature files
 * @throws InterruptedException Exception thrown if there is an interuption within the JVM
 */
@After()
public void afterTest(Scenario scenario) throws InterruptedException {
    LOG.info("Taking screenshot IF Test Failed");
    System.out.println("Taking screenshot IF Test Failed (sysOut)");
    if (scenario.isFailed()) {
        try {
            System.out.println("Scenario FAILED... screen shot taken");
            scenario.write(getDriver().getCurrentUrl());
            byte[] screenShot = ((TakesScreenshot) getDriver()).getScreenshotAs(OutputType.BYTES);
            scenario.embed(screenShot, "image/png");
        } catch (WebDriverException e) {
            LOG.error(e.getMessage());
        }
    }
}
项目:mobileAutomation    文件:Driver.java   
/**
 * Save screenshot to file.
 * 
 * @param fileName
 */
public static void saveScreenShot(String fileName){
    File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    try {

        Path destPath = Paths.get(
                Logger.getLogger().getLogDirPath().toString() 
                + "/" + fileName);

        FileUtils.copyFile(scrFile, new File(destPath.toString()));
        logger.log("Saved screenshot: " + destPath.toString());

    } catch (IOException e) {
        logger.logLines(e.getStackTrace().toString());
        logger.log("Failed to save screenshot!");
        System.out.println();
    }
}
项目:crawler    文件:WindowUtil.java   
public static void taskScreenShot(WebDriver driver,File saveFile){
    if(saveFile.exists()){
        saveFile.delete();
    }
    byte[] src=((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES);//.FILE);linux下非root用户,java创建临时文件存在问题
    log.info("截图文件字节长度"+src.length);
    try {
        FileUtils.writeByteArrayToFile(saveFile, src);
    } catch (IOException e) {
        e.printStackTrace();
        log.error("截图写入失败",e);
    }
}
项目:GeoCrawler    文件:HttpWebClient.java   
private static void takeScreenshot(WebDriver driver, Configuration conf) {
  try {
    String url = driver.getCurrentUrl();
    File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    LOG.debug("In-memory screenshot taken of: {}", url);
    FileSystem fs = FileSystem.get(conf);
    Path screenshotPath = new Path(conf.get("selenium.screenshot.location") + "/" + srcFile.getName());
    if (screenshotPath != null) {
      OutputStream os = null;
      if (!fs.exists(screenshotPath)) {
        LOG.debug("No existing screenshot already exists... creating new file at {} {}.", screenshotPath, srcFile.getName());
        os = fs.create(screenshotPath);
      }
      InputStream is = new BufferedInputStream(new FileInputStream(srcFile));
      IOUtils.copyBytes(is, os, conf);
      LOG.debug("Screenshot for {} successfully saved to: {} {}", url, screenshotPath, srcFile.getName()); 
    } else {
      LOG.warn("Screenshot for {} not saved to HDFS (subsequently disgarded) as value for "
          + "'selenium.screenshot.location' is absent from nutch-site.xml.", url);
    }
  } catch (Exception e) {
    throw new RuntimeException(e);
  }
}
项目:Quantum    文件:CloudUtils.java   
/**
 * Download the report. type - pdf, html, csv, xml Example:
 * downloadReport(driver, "pdf", "C:\\test\\report");
 */

public static void downloadReport(String type, String fileName) throws IOException {
    try {
        String command = "mobile:report:download";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("type", type);
        String report = (String) new WebDriverTestBase().getDriver()
                .executeScript(command, params);
        File reportFile = new File(fileName + "." + type);
        BufferedOutputStream output =
                new BufferedOutputStream(new FileOutputStream(reportFile));
        byte[] reportBytes = OutputType.BYTES.convertFromBase64Png(report);
        output.write(reportBytes);
        output.close();
    } catch (Exception ex) {
        System.out.println("Got exception " + ex);
    }
}
项目:xlt-visual-assert    文件:VisualAssertion.java   
/**
 * Takes a screenshot if the underlying web driver instance is capable of doing it. Fails with a message only in
 * case the webdriver cannot take screenshots. Avoids issue when certain drivers are used.
 * 
 * @param webDriver
 *            the web driver to use
 * @return {@link BufferedImage} if the webdriver supports taking screenshots, null otherwise
 * @throws RuntimeException
 *             In case the files cannot be written
 */
private BufferedImage takeScreenshot(final WebDriver webDriver)
{
    if (webDriver instanceof TakesScreenshot)
    {
        final byte[] bytes = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.BYTES);
        try
        {
            return ImageIO.read(new ByteArrayInputStream(bytes));
        }
        catch (final IOException e)
        {
            throw new RuntimeException(e);
        }
    }
    else
    {
        return null;
    }
}
项目:cashion    文件:Snapshot.java   
public static void snapshot(TakesScreenshot drivername, String filename)
{
    // this method will take screen shot ,require two parameters ,one is driver name, another is file name


  File scrFile = drivername.getScreenshotAs(OutputType.FILE);
      // Now you can do whatever you need to do with it, for example copy somewhere
      try {
          System.out.println("save snapshot path is:"+filename);
          FileUtils.copyFile(scrFile, new File(filename));
      } catch (IOException e) {
          // TODO Auto-generated catch block
          System.out.println("Can't save screenshot");
          e.printStackTrace();
      } 
      finally
      {
          System.out.println("screen shot finished");
      }
}
项目:SeleniumCucumber    文件:GenericHelper.java   
public String takeScreenShot(String name) throws IOException {

        if (driver instanceof HtmlUnitDriver) {
            oLog.fatal("HtmlUnitDriver Cannot take the ScreenShot");
            return "";
        }

        File destDir = new File(ResourceHelper.getResourcePath("screenshots/")
                + DateTimeHelper.getCurrentDate());
        if (!destDir.exists())
            destDir.mkdir();

        File destPath = new File(destDir.getAbsolutePath()
                + System.getProperty("file.separator") + name + ".jpg");
        try {
            FileUtils
                    .copyFile(((TakesScreenshot) driver)
                            .getScreenshotAs(OutputType.FILE), destPath);
        } catch (IOException e) {
            oLog.error(e);
            throw e;
        }
        oLog.info(destPath.getAbsolutePath());
        return destPath.getAbsolutePath();
    }
项目:XPathBuilder    文件:TestBase.java   
@AfterMethod
public void setScreenshot(ITestResult result) {
  if (!result.isSuccess()) {
    try {
      WebDriver returned = new Augmenter().augment(webDriver);
      if (returned != null) {
        File f = ((TakesScreenshot) returned).getScreenshotAs(OutputType.FILE);
        try {
          FileUtils.copyFile(f,
              new File(SCREENSHOT_FOLDER + result.getName() + SCREENSHOT_FORMAT));
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    } catch (ScreenshotException se) {
      se.printStackTrace();
    }
  }
}
项目:domui    文件:DefaultScreenshotHelper.java   
@Override public boolean createScreenshot(WebDriverConnector wd, File screenshotFile) throws Exception {
    WebDriver ad = wd.driver();

    if(ad instanceof RemoteWebDriver && wd.getDriverType() == WebDriverType.REMOTE) {
        //for remote drivers we need to do augmenter thingy, for local we must not
        ad = new Augmenter().augment(ad);
    }

    if(ad instanceof TakesScreenshot) {
        File f = ((TakesScreenshot) ad).getScreenshotAs(OutputType.FILE);
        try {
            FileTool.copyFile(screenshotFile, f);
        } finally {
            FileTool.closeAll(f);
        }
        return true;
    }
    return false;
}
项目:riot-automated-tests    文件:TestUtilities.java   
public void captureImage(String imgUrl,MobileElement element) throws IOException{
    new File(imgUrl).delete();
    File screen = ((TakesScreenshot) appiumFactory.getAndroidDriver2())
            .getScreenshotAs(OutputType.FILE);
    Point point = element.getLocation();

    //get element dimension
    int width = element.getSize().getWidth();
    int height = element.getSize().getHeight();

    BufferedImage img = ImageIO.read(screen);
    BufferedImage dest = img.getSubimage(point.getX(), point.getY(), width,
            height);
    ImageIO.write(dest, "png", screen);
    File file = new File(imgUrl);
    FileUtils.copyFile(screen, file);
}
项目:riot-automated-tests    文件:RiotMiscTests.java   
@Test(groups="1driver_android")
public void takeScreenShot() throws Exception{
    // Set folder name to store screenshots.
    destDir = "screenshots";
    // Capture screenshot.
    File scrFile = ((TakesScreenshot) appiumFactory.getAndroidDriver1()).getScreenshotAs(OutputType.FILE);
    // Set date format to set It as screenshot file name.
    dateFormat = new SimpleDateFormat("dd-MMM-yyyy__hh_mm_ssaa");
    // Create folder under project with name "screenshots" provided to destDir.
    new File(destDir).mkdirs();
    // Set file name using current date time.
    String destFile = dateFormat.format(new Date()) + ".png";

    try {
        FileUtils.copyFile(scrFile, new File(destDir + "/" + destFile));
    } catch (IOException e) {
        e.printStackTrace();
    }
}
项目:alimama    文件:SeleniumUtil.java   
/**
 * 鎴浘
 * 
 * @param driver
 * @param url
 * @param filePath
 * @return
 */
public static String capture(WebDriver driver, String url, String filePath) {
    if (driver == null) {
        return null;
    }
    if (!url.startsWith("http:") && !url.startsWith("https:")) {
        return null;
    }
    if (StringUtils.isBlank(filePath)) {
        return null;
    }
    try {
        driver.get(url);
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        File screenshot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
        File file = new File(filePath);
        FileUtils.copyFile(screenshot, file);
        logger.info("capture success!");
    } catch (IOException e) {
        logger.error("browser capture is error!", e);
        filePath = null;
        throw new RuntimeException(e);
    }
    return filePath;
}
项目:alimama    文件:SeleniumUtil.java   
/**
 * 鎴浘
 * 
 * @param driver
 * @param url
 * @param filePath
 * @return
 */
public static String capture(WebDriver driver, String url, String filePath) {
    if (driver == null) {
        return null;
    }
    if (!url.startsWith("http:") && !url.startsWith("https:")) {
        return null;
    }
    if (StringUtils.isBlank(filePath)) {
        return null;
    }
    try {
        driver.get(url);
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        File screenshot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
        File file = new File(filePath);
        FileUtils.copyFile(screenshot, file);
        logger.info("capture success!");
    } catch (IOException e) {
        logger.error("browser capture is error!", e);
        filePath = null;
        throw new RuntimeException(e);
    }
    return filePath;
}
项目:alimama    文件:SeleniumUtil.java   
/**
 * 鎴浘
 * 
 * @param driver
 * @param url
 * @param filePath
 * @return
 */
public static String captureDataoke(WebDriver driver, String url, String filePath) {
    if (driver == null) {
        return null;
    }
    if (!url.startsWith("http:") && !url.startsWith("https:")) {
        return null;
    }
    if (StringUtils.isBlank(filePath)) {
        return null;
    }
    try {
        driver.get(url);
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        File screenshot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
        File file = new File(filePath);
        FileUtils.copyFile(screenshot, file);
        logger.info("capture success!");
    } catch (IOException e) {
        logger.error("browser capture is error!", e);
        filePath = null;
        throw new RuntimeException(e);
    }
    return filePath;
}
项目:oscon-aus-2016    文件:DemoWebTest.java   
@Test
public void seleniumDemo() throws Exception {
    // Hard coded to firefox
    DesiredCapabilities caps = DesiredCapabilities.firefox();
    // Hard coded selenium host
    RemoteWebDriver driver = new RemoteWebDriver(new URL("http://192.168.99.100:4444/wd/hub"), caps);
    driver.get("http://google.com");

    String source = driver.getPageSource();
    File file = driver.getScreenshotAs(OutputType.FILE);

    //TODO log the screenshot and source to a report

    // don't forget to close the WebDriver connection
    driver.quit();
}
项目:sentinela    文件:PrintsScreen.java   
public static File printWebElement(WebElement element, WebDriver driver) throws IOException {
    File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
    Point p = element.getLocation();
    int width = element.getSize().getWidth();
    int height = element.getSize().getHeight();
    BufferedImage img = null;
    BufferedImage dest = null;
    img = ImageIO.read(scrFile);
    if (element.isDisplayed()) {
        dest = img.getSubimage(p.getX(), p.getY(), width, height);
    } else {
        dest = img.getSubimage(0, 0, 1, 1);
    }
    ImageIO.write(dest, ManipulateFiles.getListString("imgExtension"), scrFile);
    return scrFile;
}
项目:hugegherkin    文件:SeleniumHelperImpl.java   
/**
 * Gets screen shot.
 *
 * @param driver   the driver
 * @param filename the filename
 *
 * @return the screen shot
 *
 * @throws IOException the iO exception
 */
public File getScreenShot(WebDriver driver, String filename) throws IOException {
    File imageFile = null;
    try {
        createScreenShotDir();

        File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

        String path = pathToScreenshot + relativeScreenshotPath + filename + scrFile.getName();
        imageFile = new File(path);
        FileUtils.copyFile(scrFile, imageFile);
        logger.debug("We are taking screenshots!");
    } catch (Exception ex) {
        // Any exception in Screen shot should be eaten here. It should not hamper selenium tests.
        logger.debug("Something went wrong getting a screenshots");
    }
    return imageFile;
}
项目:seleniumMvnScreenshot    文件:FailTestScreenshotListener.java   
@Override
public void onTestFailure(ITestResult tr) {
    super.onTestFailure(tr);

    WebDriver webDriver = findWebDriverByReflection(tr.getInstance()    );
    if (webDriver == null) {
        System.err.println(String.format("The test class '%s' does not have any field/method of type 'org.openqa.selenium.WebDriver'. " +
                "ScreenshotTestListener can not continue.", tr.getInstance().getClass().getName()));
        return;
    }

    File f = ((TakesScreenshot) webDriver).getScreenshotAs(OutputType.FILE);
    try {
        final long timestamp = new Date().getTime();
        Path screenshotPath = Paths.get(currentDir, "target", "screenshot_" + tr.getMethod().getMethodName() + "_" + timestamp + ".png");
        System.out.println("copying " + screenshotPath);
        Files.copy(f.toPath(), screenshotPath, StandardCopyOption.REPLACE_EXISTING);
    } catch (IOException e) {
        System.err.println("error during the screenshot copy file operation:" + e.getMessage());
    }

}
项目:kc-rice    文件:WebDriverScreenshotHelper.java   
/**
 * Screenshots will be saved using either the value of (#REMOTE_DRIVER_SCREENSHOT_FILENAME or if none, testName.testNameMethod)
 * appended with a date time stamp and the png file extension.
 *
 * @see WebDriverUtils#getDateTimeStampFormatted
 *
 * @param driver to use, if not of type TakesScreenshot no screenshot will be taken
 * @param testName to save test as, unless #REMOTE_DRIVER_SCREENSHOT_FILENAME is set
 * @param testMethodName to save test as, unless #REMOTE_DRIVER_SCREENSHOT_FILENAME is set
 * @throws IOException
 */
public void screenshot(WebDriver driver, String testName, String testMethodName, String screenName) throws IOException {
    if (driver instanceof TakesScreenshot) {

        if (!"".equals(screenName)) {
            screenName = "-" + screenName;
        }

        File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        // It would be nice to make the screenshot file name much more configurable.
        String screenshotFileName = WebDriverUtils.getDateTimeStampFormatted() + "-"
                + System.getProperty(REMOTE_DRIVER_SCREENSHOT_FILENAME, testName + "." + testMethodName)
                + screenName + ".png";
        FileUtils.copyFile(scrFile, new File(System.getProperty(REMOTE_DRIVER_SCREENSHOT_DIR, ".")
                + File.separator, screenshotFileName));
        String archiveUrl = System.getProperty(REMOTE_DRIVER_SCREENSHOT_ARCHIVE_URL, "");
        WebDriverUtils.jGrowl(driver, "Screenshot", false, archiveUrl + screenshotFileName);
    }
}
项目:seleniumtestsframework    文件:ScreenshotUtil.java   
public static String captureEntirePageScreenshotToString(final WebDriver driver, final String arg0) {
    if (driver == null) {
        return "";
    }

    try {

        // Don't capture snapshot for htmlunit
        if (WebUIDriver.getWebUIDriver().getBrowser().equalsIgnoreCase(BrowserType.HtmlUnit.getBrowserType())) {
            return null;
        }

        if (WebUIDriver.getWebUIDriver().getBrowser().equalsIgnoreCase(BrowserType.Android.getBrowserType())) {
            return null;
        }

        TakesScreenshot screenShot = (TakesScreenshot) driver;
        return screenShot.getScreenshotAs(OutputType.BASE64);
    } catch (Exception ex) {

        // Ignore all exceptions
        ex.printStackTrace();
    }

    return "";
}
项目:webcat-testing-platform    文件:NullPageObject.java   
@Override
protected void takeScreenshotImpl(String methodName) {
    try {
        final byte[] screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
        final IContext context = Context.getInstance();
        context.addScreenshot(screenshot);
    }
    catch(UnreachableBrowserException ex) {
        logger.log(Level.WARN, "Could not reach browser to take screenshot");
    }
    catch(WebDriverException webDriverEx) {
        if(webDriverEx.getMessage().contains("Session not found")) {
            logger.log(Level.WARN, "Could not reach browser to take screenshot");
        } else {
            throw webDriverEx;
        }
    }
}
项目:FuncaoWeb    文件:Nucleo.java   
/**
 * Tira uma foto da p�gina
 * 
 * @param path
 *            - Retorna o local que a imagem foi gravada.
 * @author Rog�rio Figueiredo.
 */

public String captureScreen(String path) {
    path = path + "\\";
    try {
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        File source = ((TakesScreenshot) augmentedDriver)
                .getScreenshotAs(OutputType.FILE);
        path = path + source.getName();
        FileUtils.copyFile(source, new File(path));
    } catch (IOException e) {
        path = "Failed to capture screenshot: " + e.getMessage();
    }

    System.out.println("Local que foi gravado a imagem: " + path);
    return path;
}
项目:edx-app-android    文件:NativeAppDriver.java   
/**
 * Captures the screenshot
 */
public void captureScreenshot() {
    String outputPath = PropertyLoader.loadProperty("output.path").get();

    String screenShotPath = outputPath + "/ScreenShots/";
    String fileName = generateFileName() + ".jpg";
    // Take the screenshot
    File scrFile = ((TakesScreenshot) (this.appiumDriver))
            .getScreenshotAs(OutputType.FILE);
    try {
        FileUtils.copyFile(scrFile, new File(screenShotPath + fileName));
        Reporter.log("<br> Module name: " + getCurrentTestClassName()
                + "<br>");
        Reporter.log(" Refer to <a href=\"ScreenShots/" + fileName
                + "\" target = \"_blank\"><img src=\"ScreenShots/"
                + fileName + "\" width=\"50\" height=\"50\"></a><br>");
    } catch (IOException e) {
        e.printStackTrace();
    }
}
项目:AppiumTestDistribution    文件:ScreenShotManager.java   
public String captureScreenShot(int status, String className,
                                String methodName, String deviceModel)
        throws IOException, InterruptedException {

    String getDeviceModel = null;
    if (AppiumDriverManager.getDriver().getSessionId() != null) {
        System.out.println("Current Running Thread Status"
                + AppiumDriverManager.getDriver().getSessionId());
        File scrFile = AppiumDriverManager.getDriver()
                .getScreenshotAs(OutputType.FILE);
        screenShotNameWithTimeStamp = currentDateAndTime();
        if (AppiumDeviceManager.getMobilePlatform().equals(MobilePlatform.ANDROID)) {
            getDeviceModel = screenShotNameWithTimeStamp + deviceModel;
            screenShotAndFrame(status, scrFile, methodName, className, getDeviceModel,
                    "android", deviceModel);
        } else if (AppiumDeviceManager.getMobilePlatform().equals(MobilePlatform.IOS)) {
            getDeviceModel = screenShotNameWithTimeStamp + deviceModel;
            screenShotAndFrame(status, scrFile, methodName, className, getDeviceModel,
                    "iOS", deviceModel);
        }
    }
    return getDeviceModel;
}
项目:AppiumTestDistribution    文件:Hooks.java   
@After
public void afterClass(Scenario scenario) throws InterruptedException, IOException {
    if (scenario.isFailed()) {
        try {
            byte[] screenshot =
                    ((TakesScreenshot) AppiumDriverManager.getDriver())
                            .getScreenshotAs(OutputType.BYTES);
            scenario.embed(screenshot, "image/png");
        } catch (WebDriverException wde) {
            System.err.println(wde.getMessage());
        } catch (ClassCastException cce) {
            cce.printStackTrace();
        }
        System.out.println("Inside After" + Thread.currentThread().getId());
    }
    AppiumDriverManager.getDriver().quit();

}
项目:kspl-selenium-helper    文件:MiscellaneousFunctions.java   
/**
 * This function is used to capture screenshot and store it in directory
 * @param driver -Pass your WebDriver instance.
 * @param screenshotdir - Pass your screenshot directory
 * @return - Returns location where screenshot is stored.
 * @throws IOException -Exception is thrown during communcation errors.
    */
public static String captureScreenshot(WebDriver driver,
        String screenshotdir) throws IOException {
    String randomUUID = UUID.randomUUID().toString();
    String storeFileName = screenshotdir + File.separator
            + getFileNameFromURL(driver.getCurrentUrl()) + "_"
            + randomUUID + ".png";
    String[] screenshotdirsplit = screenshotdir.split(File.separator);
    String fileName = screenshotdirsplit[screenshotdirsplit.length - 1] + File.separator
            + getFileNameFromURL(driver.getCurrentUrl()) + "_"
            + randomUUID + ".png";
    File scrFile = ((TakesScreenshot) driver)
            .getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(scrFile, new File(storeFileName));
    return fileName;
}