Java 类org.openqa.selenium.remote.Augmenter 实例源码

项目: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();
}
项目: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;
}
项目: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) {
    if (driver == null) {
        return null;
    }
    if (!url.startsWith("http:") && !url.startsWith("https:")) {
        return null;
    }
    String response;
    try {
        driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        driver.get(url);
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        response = augmentedDriver.getPageSource();
        logger.info("content success!");
    } catch (Exception e) {
        logger.error("browser content is error!", e);
        throw new RuntimeException(e);
    }
    return response;
}
项目: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;
}
项目:alimama    文件:SeleniumUtil.java   
/**
 * 鎴浘
 * 
 * @param driver
 * @param url
 * @param filePath
 * @return
 */
public static String capture(WebDriver driver, String url) {
    if (driver == null) {
        return null;
    }
    if (!url.startsWith("http:") && !url.startsWith("https:")) {
        return null;
    }
    String response;
    try {
        driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        driver.get(url);
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        response = augmentedDriver.getPageSource();
        logger.info("content success!");
    } catch (Exception e) {
        logger.error("browser content is error!", e);
        throw new RuntimeException(e);
    }
    return response;
}
项目: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;
}
项目:hsac-fitnesse-fixtures    文件:SeleniumHelper.java   
/**
 * Takes screenshot of current page (as .png).
 * @param baseName name for file created (without extension),
 *                 if a file already exists with the supplied name an
 *                 '_index' will be added.
 * @return absolute path of file created.
 */
public String takeScreenshot(String baseName) {
    String result = null;

    WebDriver d = driver();

    if (!(d instanceof TakesScreenshot)) {
        d = new Augmenter().augment(d);
    }
    if (d instanceof TakesScreenshot) {
        TakesScreenshot ts = (TakesScreenshot) d;
        byte[] png = ts.getScreenshotAs(OutputType.BYTES);
        result = writeScreenshot(baseName, png);
    }
    return result;
}
项目:bootstrapium    文件:ScreenshotListener.java   
private void takeScreenshot(String testName) throws Exception {
    WebDriver driver = getDriver();
    String screenshotDirectory = System.getProperty("screenshotDirectory");
    String screenshotAbsolutePath = screenshotDirectory + File.separator
            + System.currentTimeMillis() + "_" + testName + ".png";
    File screenshot = new File(screenshotAbsolutePath);
    if (createFile(screenshot)) {
        try {
            writeScreenshotToFile(driver, screenshot);
        } catch (ClassCastException weNeedToAugmentOurDriverObject) {
            writeScreenshotToFile(new Augmenter().augment(driver),
                    screenshot);
        }
        System.out.println("Written screenshot to "
                + screenshotAbsolutePath);
    } else {
        System.err.println("Unable to create " + screenshotAbsolutePath);
    }
}
项目:harness    文件:TestListener.java   
@Override
public void onTestFailure(ITestResult tr)
{
    if(DriverAdapter.getDriver() != null)
    {
        WebDriver augmentedDriver = new Augmenter().augment(DriverAdapter.getDriver());
        File screenShot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
        try
        {
            FileUtils.copyFile(screenShot, new File(System.getProperty("testReport") + "/screenshots/"+tr.getMethod().getMethodName().toLowerCase()+".jpg"));
        }
        catch(IOException e)
        {
            System.err.println(e.getMessage());
        }
    }
    log("F");
    super.onTestFailure(tr);
}
项目:JBehave-Selendroid-Android-Automation    文件:CommonMethods.java   
public static void takeScreenShot() throws Exception {
    WebDriver augmentedDriver = new Augmenter().augment(driver);
    File screenshot = ((TakesScreenshot) augmentedDriver)
            .getScreenshotAs(OutputType.FILE);
    String nameScreenshot = UUID.randomUUID().toString() + ".png";
    File directory = new File(".");

    String newFileNamePath = directory.getCanonicalPath() + pathSeparator
            + "target" + pathSeparator + "jbehave" + pathSeparator
            + "screenshots" + pathSeparator + nameScreenshot;
    FileUtils.copyFile(screenshot, new File(newFileNamePath));

    // return newFileNamePath;

    /*
     * Reporter.log(message + "<br/><a href='file:///" + path +
     * "'> <img src='file:///" + path +
     * "' height='100' width='100'/> </a>");
     */
}
项目:cerberus-source    文件:WebDriverService.java   
public File takeScreenShotFile(Session session) {
    boolean event = true;
    long timeout = System.currentTimeMillis() + (session.getCerberus_selenium_wait_element());
    //Try to capture picture. Try again until timeout is WebDriverException is raised.
    while (event) {
        try {
            WebDriver augmentedDriver = new Augmenter().augment(session.getDriver());
            File image = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);

            if (image != null) {
                //logs for debug purposes
                LOG.info("WebDriverService: screen-shot taken with succes: " + image.getName() + "(size" + image.length() + ")");
            } else {
                LOG.warn("WebDriverService: screen-shot returned null: ");
            }
            return image;
        } catch (WebDriverException exception) {
            if (System.currentTimeMillis() >= timeout) {
                LOG.warn(exception.toString());
            }
            event = false;
        }
    }

    return null;
}
项目:SeleniumFramework    文件:Browser.java   
private void setUpScreenshot(String screenshotPath)
        throws IOException {
    if (Boolean.valueOf(System.getProperty("LOCAL_DRIVER"))) {
        takeScreenshot();
        writeScreenshotToFileSystem(screenshotPath);
        LOGGER.log(Level.FINEST, MESSAGE_LOCAL_SCREENSHOT_SUCCESSFUL
                + screenshotPath);
    } else if (Boolean.valueOf(System.getProperty("REMOTE_DRIVER"))) {
        driver.set(new Augmenter().augment(driver.get()));
        takeScreenshot();
        writeScreenshotToFileSystem(screenshotPath);
        LOGGER.log(Level.FINEST, MESSAGE_REMOTE_SCREENSHOT_SUCCESSFUL
                + screenshotPath);
    } else if (Boolean.valueOf(System.getProperty("SAUCE_DRIVER"))) {
        LOGGER.log(Level.WARNING, MESSAGE_SAUCE_SCREENSHOT_FAILURE);
    } else {
        LOGGER.log(Level.WARNING,
                MESSAGE_CANNOT_TAKE_SCREENSHOT_UNABLE_TO_IDENTIFY_DRIVER_TYPE);
    }
}
项目:teasy    文件:BaseTeasyElement.java   
@Override
public <X> X getScreenshotAs(OutputType<X> target) {
    if (getWebDriver().getClass() == RemoteWebDriver.class) {
        WebDriver augmentedDriver = new Augmenter().augment(getWebDriver());
        return ((TakesScreenshot) augmentedDriver).getScreenshotAs(target);
    } else {
        return ((TakesScreenshot) getWebDriver()).getScreenshotAs(target);
    }
}
项目:teasy    文件:WebDriverDecorator.java   
@Override
public <X> X getScreenshotAs(final OutputType<X> target) throws WebDriverException {
    if (driver.getClass() == RemoteWebDriver.class) {
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        return ((TakesScreenshot) augmentedDriver).getScreenshotAs(target);
    } else {
        return ((TakesScreenshot) driver).getScreenshotAs(target);
    }
}
项目:cucumber-framework-java    文件:StartingSteps.java   
@After
public void afterScenario( Scenario scenario ) throws Exception
{
    try
    {
        attachLog();

        if( scenario.isFailed() )
        {
            try
            {
                scenario.write( "Current Page URL is " + getDriver().getCurrentUrl() );
                byte[] screenshot;
                try
                {
                    screenshot = ( ( TakesScreenshot ) getDriver() ).getScreenshotAs( OutputType.BYTES );
                } catch( ClassCastException weNeedToAugmentOurDriverObject )
                {
                    screenshot = ( ( TakesScreenshot ) new Augmenter().augment( getDriver() ) ).getScreenshotAs( OutputType.BYTES );
                }
                String relativeScrnShotPath = takeScreenshot().substring(takeScreenshot().indexOf("screenshots"));
                Reporter.addScreenCaptureFromPath(relativeScrnShotPath, getDriver().getCurrentUrl());
            } catch( WebDriverException somePlatformsDontSupportScreenshots )
            {
                System.err.println( somePlatformsDontSupportScreenshots.getMessage() );
            }
        }
    } finally
    {
        closeDriverObjects();
    }
}
项目:selenium-camp-samples    文件:ScreenshotUtils.java   
public static void takeScreenshot(final WebDriver driver) {
    final WebDriver augmentedDriver = new Augmenter().augment(driver);
    final File screenshot = ((TakesScreenshot) augmentedDriver).
            getScreenshotAs(OutputType.FILE);
    Try.run(() -> FileUtils.copyFile(screenshot,
            new File("screen" + RandomStringUtils.randomNumeric(3) + ".png")));
}
项目:EarthWorm    文件:ScreenShotUtil.java   
public static String screenShot(BrowserEmulator be) {
    String dir = "screenshot"; 
    String time = new SimpleDateFormat("yyyyMMdd-HHmmss").format(new Date());
    String screenShotPath = dir + File.separator + time + ".png";

    WebDriver augmentedDriver = null;
    if (GlobalSettings.browserCoreType == 1 || GlobalSettings.browserCoreType == 3) {
        augmentedDriver = be.getBrowserCore();
        augmentedDriver.manage().window().setPosition(new Point(0, 0));
        augmentedDriver.manage().window().setSize(new Dimension(9999, 9999));
    } else if (GlobalSettings.browserCoreType == 2) {
        augmentedDriver = new Augmenter().augment(be.getBrowserCore());
    } else {
        return "Incorrect browser type";
    }

    try {
        File sourceFile = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(sourceFile, new File(screenShotPath));
    } catch (Exception e) {
        e.printStackTrace();
        return "Failed to screenshot";
    }

    // Convert '\' into '/' for web image browsing.
    return screenShotPath.replace("\\", "/");
}
项目:domui    文件:DefaultScreenshotHelper.java   
@Nullable @Override public BufferedImage createScreenshot(@Nonnull WebDriverConnector wd) 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);
        return ImageIO.read(f);
    }
    return null;
}
项目:0686OS    文件:Page.java   
public File captureScreenShot(String destination) throws IOException {
    WebDriver augmentedDriver = new Augmenter().augment(getDriver());
    File srcFile = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
    File output = new File(destination);
    FileUtils.copyFile(srcFile, output);
    return output;
}
项目:Gepard    文件:WebDriverUtil.java   
/**
 * Write an event message to the log.
 *
 * @param text     Event message
 * @param makeDump if true, page source dump will be created.
 */
public void logEvent(final String text, final boolean makeDump) {
    String addStr = "";
    if (!text.startsWith("<font")) {
        tc.getTestClassExecutionData().addSysOut(text);
    }
    if (tc.getTestClassExecutionData().getHtmlRunReporter().getTestMethodHtmlLog() != null) {
        if (makeDump) {
            try {
                String dumpFileName = dumpSource(true);
                File dumpFile = new File(dumpFileName);
                String screenshotFileName = dumpFileName + ".png";
                if (selenium != null) {
                    selenium.windowMaximize();
                    WebDriver augmentedDriver = new Augmenter().augment(webDriver);
                    File screenShot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
                    FileUtil fileUtil = new FileUtil();
                    File screenShotFile = new File(screenshotFileName);
                    fileUtil.copy(screenShot, screenShotFile);
                }
                String dumpFileName2 = dumpSource(false);
                File dumpFile2 = new File(dumpFileName2);
                addStr = " <small>[<a href=\"" + dumpFile.getName() + "\" target=\"_new\">source</a>]" + " [<a href=\"" + dumpFile2.getName()
                        + "\" target=\"_new\">view</a>]" + " [<a href=\"" + dumpFile.getName() + ".png\" target=\"_new\">screenshot</a>]</small>";
            } catch (Exception e) {
                addStr = " <small>[Dump failed]</small>";
            }
        }
        tc.getTestClassExecutionData().getHtmlRunReporter().getTestMethodHtmlLog().insertText("<tr><td>&nbsp;</td><td bgcolor=\"#F0F0F0\">" + text + addStr + "</td></tr>\n");
    }
}
项目:XBDD    文件:XbddDriver.java   
private static WebDriver getSeleniumGridRemoteDriver() throws MalformedURLException {
    final DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    desiredCapabilities.setBrowserName(System.getProperty("selenium.grid.browser", "firefox"));
    desiredCapabilities.setVersion(System.getProperty("selenium.grid.version", ""));
    desiredCapabilities.setPlatform(Platform.ANY);

    final URL url = new URL("http", System.getProperty("selenium.grid"), Integer.valueOf(System.getProperty(
            "selenium.grid.port", "4444")), "/wd/hub");

    final RemoteWebDriver remoteWebDriver = new RemoteWebDriver(url,
            desiredCapabilities);
    remoteWebDriver.setFileDetector(new LocalFileDetector());
    return new Augmenter().augment(remoteWebDriver);
}
项目:mamute    文件:FailFastListener.java   
private void takeScreenshot(File tempDir) throws IOException {
    try {
        driver = new Augmenter().augment(driver);
        File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        File png = new File(tempDir, "failure" + System.currentTimeMillis() + ".png");
        FileUtils.copyFile(srcFile, png);
        System.err.println("screenshot saved to " + png.getAbsolutePath());
    } catch (Exception e) {
        System.err.println("could not save screen shot, see exception below");
        e.printStackTrace();
    }
}
项目:cinnamon    文件:Screenshot.java   
public <T> T getScreenshotAs(OutputType<T> target) throws WebDriverException {
    try {
        TakesScreenshot takesScreenshot = webDriver.getClass().isAnnotationPresent(Augmentable.class) ?
                (TakesScreenshot) new Augmenter().augment(webDriver) :
                (TakesScreenshot) webDriver;
        return takesScreenshot.getScreenshotAs(target);
    } catch (ClassCastException e) {
        throw new WebDriverException(
                "Taking screenshots is not supported by the concrete implementation of WebDriver [" + webDriver.getClass() + "].");
    }
}
项目:crawljax    文件:WebDriverBackedEmbeddedBrowser.java   
private <T> T takeScreenShotOnBrowser(WebDriver driver, OutputType<T> outType)
        throws CrawljaxException {
    if (driver instanceof TakesScreenshot) {
        T screenshot = ((TakesScreenshot) driver).getScreenshotAs(outType);
        removeCanvasGeneratedByFirefoxDriverForScreenshots();
        return screenshot;
    } else if (driver instanceof RemoteWebDriver) {
        WebDriver augmentedWebdriver = new Augmenter().augment(driver);
        return takeScreenShotOnBrowser(augmentedWebdriver, outType);
    } else if (driver instanceof WrapsDriver) {
        return takeScreenShotOnBrowser(((WrapsDriver) driver).getWrappedDriver(), outType);
    } else {
        throw new CrawljaxException("Your current WebDriver doesn't support screenshots.");
    }
}
项目:jfunk    文件:RemoteWebDriverProvider.java   
@Override
protected WebDriver createWebDriver(final DesiredCapabilities capabilities) {
    String remoteWebDriverUrl = config.get(WebConstants.REMOTE_WEBDRIVER_URL, "");
    Validate.notBlank(remoteWebDriverUrl, "Property '%s' must be set in configuration", WebConstants.REMOTE_WEBDRIVER_URL);

    URL url;
    try {
        url = new URL(remoteWebDriverUrl);
    } catch (MalformedURLException e) {
        throw new IllegalArgumentException("Illegal remote web driver hub url: " + remoteWebDriverUrl);
    }

    log.info("Starting remote web driver with capabilitiesMap: {}", capabilitiesMap);
    return new Augmenter().augment(new RemoteWebDriver(url, capabilities));
}
项目:minium    文件:WebDriverFactory.java   
public WebDriver create(WebDriverProperties webDriverProperties) throws IOException {
    DesiredCapabilities desiredCapabilities = new DesiredCapabilities(webDriverProperties.getDesiredCapabilities());
    desiredCapabilities.merge(browserSpecificCapabilities(webDriverProperties));

    WebDriver webDriver = null;
    if (webDriverProperties.getUrl() != null) {
        RemoteWebDriver remoteDriver = new RemoteWebDriver(webDriverProperties.getUrl(), desiredCapabilities);
        remoteDriver.setFileDetector(new LocalFileDetector());
        webDriver = remoteDriver;
    } else {
        String browserName = desiredCapabilities == null ? null : desiredCapabilities.getBrowserName();
        if (Strings.isNullOrEmpty(browserName)) browserName = BrowserType.CHROME;
        webDriver = WebDriverType.typeFor(browserName).create(this, desiredCapabilities);
    }

    WindowProperties window = webDriverProperties.getWindow();
    if (window != null) {
        DimensionProperties size = window.getSize();
        PointProperties position = window.getPosition();
        if (size != null) webDriver.manage().window().setSize(new Dimension(size.getWidth(), size.getHeight()));
        if (position != null) webDriver.manage().window().setPosition(new Point(position.getX(), position.getY()));
        if (window.isMaximized()) {
            webDriver.manage().window().maximize();
        }
    }

    webDriver = webDriver instanceof TakesScreenshot ? webDriver : new Augmenter().augment(webDriver);
    for (WebDriverTransformer transformer : driverServices.getWebDriverTranformers()) webDriver = transformer.transform(webDriver);
    return webDriverProperties.isStateful() ? new StatefulWebDriver(webDriver) : webDriver;
}
项目:JTAF-ExtWebDriver    文件:ScreenshotUtils.java   
/***
 * Take a screenshot of the browser content. Note that while using RemoteWebDriver sessions (ie: with
 * Sauce Labs), the screenshot will be a full page of content--not only the visible content where the
 * page is scrolled (as when using a non-RemoteWebDriver session).
 * 
 * @param toSaveAs - name of the file to save the picture in (Note: must be PNG)
 * @throws IOException 
 */
public static void takeScreenshotOfPage(File toSaveAs) throws IOException {
    WebDriver wd = SessionManager.getInstance().getCurrentSession().getWrappedDriver();
    File screenshot;
    if(!(wd instanceof RemoteWebDriver)) {
        screenshot = ((TakesScreenshot) wd).getScreenshotAs(OutputType.FILE);       
    }
    else {
        Augmenter augmenter = new Augmenter();
        screenshot = ((TakesScreenshot) augmenter.augment(wd)).getScreenshotAs(OutputType.FILE);
    }
    FileUtils.copyFile(screenshot, toSaveAs);
}
项目:galen    文件:SeleniumGridBrowserFactory.java   
@Override
public Browser openBrowser() {

    try {

        WebDriver driver = new RemoteWebDriver(new URL(gridUrl), this.createCapabilities());
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        return new SeleniumBrowser(augmentedDriver);
    }
    catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}
项目:pageobject    文件:WebDriverBrowserImpl.java   
public void captureScreenshot(String path) throws IOException {
    WebDriver screenshotDriver = new Augmenter().augment(driver);
    FileOutputStream out = new FileOutputStream(path);
    byte[] screenshot = ((TakesScreenshot) screenshotDriver).getScreenshotAs(OutputType.BYTES);
    out.write(screenshot);
    out.close();
}
项目:selenium-on-steroids    文件:TakeScreenshotOnFailureRule.java   
/**
 * Saves the screenshot to the file.
 * 
 * @param file
 *            the file where to save the screenshot
 * @throws IOException
 *             if something goes wrong while saving
 */
private void saveScreenshotTo(final File file) throws IOException {
    byte[] bytes = null;
    try {
        bytes = ((TakesScreenshot) driver)
                .getScreenshotAs(OutputType.BYTES);
    } catch (ClassCastException e) {
        WebDriver augmentedDriver = new Augmenter().augment(driver);
        bytes = ((TakesScreenshot) augmentedDriver)
                .getScreenshotAs(OutputType.BYTES);
    }

    Files.write(bytes, file);
}
项目:camunda-bpm-platform    文件:SeleniumScreenshotRule.java   
public SeleniumScreenshotRule(WebDriver driver) {
  if (driver instanceof RemoteWebDriver) {
    webDriver = new Augmenter().augment(driver);
  } else {
    webDriver = driver;
  }
}
项目:WebAndAppUITesting    文件:BaseOpt.java   
/**
 * 屏幕截屏
 */
public void screenShot() {
    long ts = System.currentTimeMillis();
    String dir_name = "screenshot"; // 截图存放目录
    if (!(new File(dir_name).isDirectory())) {
        new File(dir_name).mkdirs(); // 不存在则新建目录
    }

    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    String time = sdf.format(new Date());

    StackTraceElement stack[] = (new Throwable()).getStackTrace();

    String cn = "";
    int line = 0;
    // for循环找到项目中最上层的类文件
    for (int i = 0; i < stack.length; i++) {
        StackTraceElement ste = stack[i];
        /*
         * PROJ_PACKAGE_NAME可自定义。
         * 作用:调用栈中找到工程的包名,然后截图,即,避免使用底层类命名截图
         */
        if (ste.getClassName().contains(PROJ_PACKAGE_NAME)) {
            cn = ste.getFileName();
            line = ste.getLineNumber();
        }
    }
    LogUtil.debug("PROJ_PACKAGE_NAME:" + PROJ_PACKAGE_NAME);

    if (cn != "" && !cn.isEmpty()) {
        cn = cn.substring(0, cn.indexOf("."));
    }
    LogUtil.info("用例:" + cn + "在第" + line + "行失败产生截图:" + time + cn + ".png");
    WebDriver augmentedDriver = new Augmenter().augment(driver);
    File source_file = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
    try {
        FileUtils.copyFile(source_file, new File(dir_name + File.separator + time + cn + ".png"));
    } catch (IOException e) {
        LogUtil.error("用例:" + cn + "在第" + line + "行失败产生截图失败:" + e);
    }
    long te = System.currentTimeMillis();
    LogUtil.info("截屏耗时ms: " + (te - ts));
}
项目:0686OS    文件:Page.java   
public byte[] captureScreenShot() {
    WebDriver augmentedDriver = new Augmenter().augment(getDriver());
    byte[] data = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.BYTES);
    return data;
}
项目:alimama    文件:SeleniumUtil.java   
public static byte[] takeScreenshot(WebDriver driver) throws IOException {  
  WebDriver augmentedDriver = new Augmenter().augment(driver);  
return ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.BYTES);  
  }
项目:seauto    文件:AbstractConfigurableDriverProvider.java   
/**
 * Helper method to launch remote web driver.
 *
 * At times there are issues with starting the remote web driver. For firefox,
 * problems with locking port 7054 can arise.
 *
 * See the Selenium <a
 * href="https://code.google.com/p/selenium/issues/detail?id=4790">bug</a> for
 * more info
 *
 * A special case needs to be performed for the Android browser, since it can not be cast to {@link RemoteWebDriver}
 *
 * @param capabilities web driver capabilities.
 * @return {@link WebDriver} instance of the remote web driver
 *
 */
protected WebDriver initRemoteWebDriver(DesiredCapabilities capabilities)
{
  URL remoteUrl = getRemoteSeleniumUrl();
  LOG.debug("Remote Selenium URL: {}", remoteUrl.toString());
  WebDriver driver = null;
  boolean isAndroid = false;
  int tries = 1;

  if(capabilities.getCapability(CapabilityType.BROWSER_NAME).equals(ANDROID_BROWSER_NAME)) {
    isAndroid = true;
  }

  while (driver == null) {
    LOG.debug("Try {} {}", tries, capabilities.toString());

    try {

      if(isAndroid) {
        driver = new AndroidDriver(remoteUrl, capabilities);
      }
      else {
        driver = new RemoteWebDriver(remoteUrl, capabilities);
      }

    } catch (WebDriverException e) {
      LOG.error("Remote WebDriver was unable to start! " + e.getMessage(), e);

      if (tries >= Integer.getInteger(REMOTE_WEBDRIVER_RETRY_ATTEMPTS, 10)) {
        throw e;
      }

      sleep(Integer.getInteger(REMOTE_WEBDRIVER_RETRY_PAUSE_MILLIS, 5000) * tries);
      tries++;
      driver = null;
    }
  }

  if(!isAndroid) {
    // allow screenshots to be taken
    driver = new Augmenter().augment(driver);
  }

  // Allow files from the host to be uploaded to a remote browser
  ((RemoteWebDriver) driver).setFileDetector(new LocalFileDetector());

  return driver;
}
项目:wtf-core    文件:WTFTest.java   
/**
 * Returns a new webdriver instance for the given browser type.
 */
public WebDriver getDriverWithRetryFromBackupGrid(WTFBrowser browser,
        ITestResult testResult) {
    String testName = testResult.getName();
    WebDriver driver = null;
    int reTryMax = 3;
    while (reTryMax > 0) {
        driver = null;
        reTryMax--;
        try {
            if (WTFTestConfig.getBackupRemoteWebDriverHubURL() != null) {
                Capabilities capabilities = getDesiredCapabilities(browser);
                driver = new RemoteWebDriver(new URL(
                        WTFTestConfig.getBackupRemoteWebDriverHubURL()),
                        capabilities);
                //BeDashListener.setCapabilityMetrics(capabilities);
                if (WTFTestConfig.screenShotEnabled()) {
                    driver = new Augmenter().augment(driver);
                }
                break;
            } else {
                return null;
            }
        } catch (Exception e) {
            LOG(SEVERE,
                    String.format(
                            "%s:: %s driver creation has failed on backup grid, reason: %s, retrying again..",
                            testName, browser.getBrowserName(),
                            e.getMessage()));
            try {
                // waits for a 10 seconds before retrying.
                Thread.sleep(10000);
            } catch (Exception e1) {
                e1.printStackTrace();
            }
        }
        if (reTryMax <= 0) {
            LOG(SEVERE,
                    "Driver creation has permanently failed on backup grid after multiple "
                            + "retries..");
            setTestFailed(testResult,
                    "Unable to connect with webdriver Grid..");
        }
    }
    return driver;
}
项目:twister    文件:TwisterWebTest.java   
@Attachment("Главная страница Twister")
@Step("Делаем скриншот")
private byte[] takeScreenShot() {
    return ((TakesScreenshot) new Augmenter().augment(driver)).getScreenshotAs(OutputType.BYTES);
}