位置:首页 > 软件测试 > Selenium在线教程 > 捕捉视频

捕捉视频

捕捉视频

有时候我们未必能够分析故障只需用日志文件或截图的帮助。有时捕获完整的执行视频帮助。让我们了解如何捕捉视频。

我们将利用Monte媒体库的执行相同。

配置

第1步:导航到URL - http://www.randelshofer.ch/monte/index.htmll和下载屏幕记录JAR,如下图所示。

selenium_ide_174

第2步:下载后,添加JAR文件添加到当前项目的库。

selenium_ide_175

第3步:我们会利用Java的AWT包来初始化显卡配置。

GraphicsConfiguration gc = GraphicsEnvironment
  .getLocalGraphicsEnvironment()
  .getDefaultScreenDevice()
  .getDefaultConfiguration();

第4步:它采用下列参数创建ScreenRecorder的一个实例。

参数 描述
显卡配置 提供了有关显示画面,例如大小和分辨率信息。
视频压缩格式 电影与帧/秒的数字输出格式(AVI)。
鼠标光标和刷新速率的颜色 指定的鼠标光标的颜色和刷新速率
音频格式 如果'NULL'音频不会被记录。

示例

我们将捕获简单的测试执行视频 - 百分比计算。

import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import org.monte.media.math.Rational;
import org.monte.media.Format;
import org.monte.screenrecorder.ScreenRecorder;
import static org.monte.media.AudioFormatKeys.*;
import static org.monte.media.VideoFormatKeys.*;
import java.awt.*;

public class webdriverdemo
{
  private static ScreenRecorder screenRecorder;
  public static void main(String[] args) throws IOException, AWTException
  {
	  GraphicsConfiguration gconfig = GraphicsEnvironment
			  .getLocalGraphicsEnvironment()
			  .getDefaultScreenDevice()
			  .getDefaultConfiguration();
	  
	  screenRecorder = new ScreenRecorder(gconfig,
			  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, (int)24, FrameRateKey, Rational.valueOf(15),
			  QualityKey, 1.0f,
			  KeyFrameIntervalKey, (int) (15 * 60)),
			  new Format(MediaTypeKey, MediaType.VIDEO,
			  EncodingKey,"black",
			  FrameRateKey, Rational.valueOf(30)), null);
	
	WebDriver driver = new FirefoxDriver();
	
    // Start Capturing the Video
	screenRecorder.start();
	
    //Puts a Implicit wait, Will wait for 10 seconds before throwing exception
	driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

    //Launch website
	driver.navigate().to("http://www.calculator.net/");
	
	//Maximize the browser
	driver.manage().window().maximize();

    // Click on Math Calculators
	driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click();
  
    // Click on Percent Calculators
	driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click();

	// Enter value 10 in the first number of the percent Calculator
    driver.findElement(By.id("cpar1")).sendKeys("10");

    // Enter value 50 in the second number of the percent Calculator
    driver.findElement(By.id("cpar2")).sendKeys("50");
    
    // Click Calculate Button
    driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();

    // Get the Result Text based on its xpath
    String result = driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText();
    
    File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
	
	FileUtils.copyFile(screenshot, new File("D:\screenshots\screenshots1.jpg"));	
	
	//Print a Log In message to the screen
    System.out.println(" The Result is " + result);
    
	//Close the Browser.
    driver.close(); 
    
    // Stop the ScreenRecorder
    screenRecorder.stop();
  }
}

输出

录制的视频保存在“C:users<<UserName>>Videos”文件夹,如下图所示。

selenium_ide_176