Friday, January 2, 2015

Video Recording in selenium web driver || How to record Testcases in selenium web driver || Is It possible to record testcases in selenium webdriver || Record Videos in webdriver d

1) Download monte screen recorder jar file and add as external jar in eclipse.

2)Replace /home/naveen/Videos with your path

Videos will be stored in selected path.


import static org.monte.media.FormatKeys.EncodingKey;
import static org.monte.media.FormatKeys.FrameRateKey;
import static org.monte.media.FormatKeys.KeyFrameIntervalKey;
import static org.monte.media.FormatKeys.MIME_AVI;
import static org.monte.media.FormatKeys.MediaTypeKey;
import static org.monte.media.FormatKeys.MimeTypeKey;
import static org.monte.media.VideoFormatKeys.CompressorNameKey;
import static org.monte.media.VideoFormatKeys.DepthKey;
import static org.monte.media.VideoFormatKeys.ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE;
import static org.monte.media.VideoFormatKeys.QualityKey;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.monte.media.Format;
import org.monte.media.FormatKeys.MediaType;
import org.monte.media.Registry;
import org.monte.media.math.Rational;
import org.monte.screenrecorder.ScreenRecorder;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;


public class VideoReord {
    private ScreenRecorder screenRecorder;

     public static void main(String[] args) throws Exception {
                                                               
             VideoReord  videoReord = new VideoReord();
//             videoReord.startRecording();                                    
                     
             WebDriver driver = new FirefoxDriver();
             driver.manage().window().maximize();
             videoReord.startRecording();
// Open url of web page
             driver.get("http://www.paytm.com/");
             System.out.println("Page title is: " + driver.getTitle());  
             driver.quit();                          
             videoReord.stopRecording();
       }


       public void startRecording() throws Exception
       {
              File file = new File("/home/naveen/Videos");
                         
              Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
              int width = screenSize.width;
              int height = screenSize.height;
                           
              Rectangle captureSize = new Rectangle(0,0, width, height);
                           
            GraphicsConfiguration gc = GraphicsEnvironment
               .getLocalGraphicsEnvironment()
               .getDefaultScreenDevice()
               .getDefaultConfiguration();

           this.screenRecorder = new SpecializedScreenRecorder(gc, captureSize,
               new Format(MediaTypeKey, MediaType.FILE, MimeTypeKey, MIME_AVI),
               new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
                    CompressorNameKey, ENCODING_AVI_TECHSMITH_SCREEN_CAPTURE,
                    DepthKey, 24, FrameRateKey, Rational.valueOf(15),
                    QualityKey, 1.0f,
                    KeyFrameIntervalKey, 15 * 60),
               new Format(MediaTypeKey, MediaType.VIDEO, EncodingKey, "black",
                    FrameRateKey, Rational.valueOf(30)),
               null, file, "MyVideo");
          this.screenRecorder.start();
     
       }

       public void stopRecording() throws Exception
       {
         this.screenRecorder.stop();
       }

       public class SpecializedScreenRecorder extends ScreenRecorder {

           private String name;

           public SpecializedScreenRecorder(GraphicsConfiguration cfg,
                  Rectangle captureArea, Format fileFormat, Format screenFormat,
                  Format mouseFormat, Format audioFormat, File movieFolder,
                  String name) throws IOException, AWTException {
                super(cfg, captureArea, fileFormat, screenFormat, mouseFormat,
                         audioFormat, movieFolder);
                this.name = name;
           }

           @Override
           protected File createMovieFile(Format fileFormat) throws IOException {
                 if (!movieFolder.exists()) {
                       movieFolder.mkdirs();
                 } else if (!movieFolder.isDirectory()) {
                       throw new IOException("\"" + movieFolder + "\" is not a directory.");
                 }
                               
                 SimpleDateFormat dateFormat = new SimpleDateFormat(
                          "yyyy-MM-dd HH.mm.ss");
                             
                 return new File(movieFolder, name + "-" + dateFormat.format(new Date()) + "."
                         + Registry.getInstance().getExtension(fileFormat));
           }
        }
}





































































































































































No comments:

Post a Comment