selenium捕捉视频
捕捉视频
有时候我们未必能够分析故障只需用日志文件或截图的帮助。有时捕获完整的执行视频帮助。让我们了解如何捕捉视频。
我们将利用Monte媒体库的执行相同。
配置
第1步:导航到URL - http://www.randelshofer.ch/monte/index.htmll和下载屏幕记录JAR,如下图所示。

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

第3步:我们会利用Java的AWT包来初始化显卡配置。
GraphicsConfiguration gc = GraphicsEnvironment
.getLocalGraphicsEnvironment()
.getDefaultScreenDevice()
.getDefaultConfiguration();
第4步:它采用下列参数创建ScreenRecorder的一个实例。
| 参数 | 描述 |
|---|---|
| 显卡配置 | 提供了有关显示画面,例如大小和分辨率信息。 |
| 视频压缩格式 | 电影与帧/秒的数字输出格式(AVI)。 |
| 鼠标光标和刷新速率的颜色 | 指定的鼠标光标的颜色和刷新速率 |
| 音频格式 | 如果'NULL'音频不会被记录。 |
示例
我们将捕获简单的测试执行视频 - 百分比计算。
package com.demo.test; 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.GraphicsConfiguration;
import java.awt.GraphicsEnvironment;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit; import org.apache.commons.io.FileUtils;
import org.monte.media.Format;
import org.monte.media.FormatKeys.MediaType;
import org.monte.media.math.Rational;
import org.monte.screenrecorder.ScreenRecorder;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver; 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 ChromeDriver(); // 开始捕获视频
screenRecorder.start(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); driver.navigate().to("https://www.baidu.com/"); driver.manage().window().maximize(); for (int i = 0; i < 3; i++) {
driver.findElement(By.id("kw")).sendKeys("selenium", Keys.ENTER);
driver.navigate().forward();
driver.navigate().back();
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(screenshot, new File("D:screenshotsscreenshots1.jpg")); // 停止捕获视频
screenRecorder.stop();
}
}
输出
录制的视频保存在“C:users<<UserName>>Videos”文件夹,如下图所示。

selenium捕捉视频的更多相关文章
- CSS canvas 捕捉视频video元素截图
video元素介绍: http://www.runoob.com/html/html5-video.html https://developer.mozilla.org/zh-CN/docs/Web/ ...
- 使用AVCaptureSession捕捉视频
#import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> #import <AssetsLibrary/ ...
- 如何在视频处理控件TVideoGrabber中设置音频捕捉设备
TVideoGrabber不仅可以捕捉视频,还可以作为多媒体播放器,并支持包括C#..NET.VB.NET.C++.Delphi.C++Builder和ActiveX平台,本文将剖析TVideoGra ...
- 视频捕捉全教程(vc+vfw)
目 录 一. 视频捕获快速入门 二.基本的捕获设置 1.设置捕获速度: 2.设置终止捕获 3.捕获的时间限制 三.关于捕获窗口 1.创建一个AVICAP捕获窗口 2.将一个捕获窗口连接至捕获设备 3. ...
- VirtualDub - 开源视频捕捉及线性处理软件
VirtualDub是一个开放源代码的视频捕捉及线性处理软件.它由Avery Lee编写,遵循GPL协议.VirtualDub可以通过摄像头捕捉视频. 官方网站http://virtualdub.or ...
- Direcshow中视频捕捉和参数设置报告
Direcshow中视频捕捉和参数设置报告 1. 关于视频捕捉(About Video Capture in Dshow) 1视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图 ...
- Direcshow之视频捕捉<转>
关于视频捕捉(About Video Capture in Dshow) 1. 视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图都称之为捕捉graph图.捕捉graph图比一般的文件回 ...
- Direcshow中视频捕捉和參数设置报告
Direcshow中视频捕捉和參数设置报告 1. 关于视频捕捉(About Video Capture in Dshow) 1视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图 ...
- 【Selenium-WebDriver自学】Selenium测试设计技术(十三)
Selenium页面对象模型 1.Selenium页面对象模型 优点 页面的对象模型是其中测试对象和功能被彼此分开,从而保持代码干净的实现. 对象保持独立的测试脚本.一个目的可以通过一个或多个测试脚本 ...
随机推荐
- eclipse启动速度优化
1. 在eclipse.ini文件中添加如下参数(红色部分) -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.ja ...
- 跟我一起使用electron搭建一个文件浏览器应用吧(三)
第二篇博客中我们可以看到我们构建的桌面应用会显示我们的文件及文件夹. In the second blog, we can see that the desktop application we bu ...
- redis前端启动和后台启动的区别
Part I. 直接启动下载官网下载安装tar zxvf redis-2.8.9.tar.gzcd redis-2.8.9#直接make 编译make#可使用root用户执行`make install ...
- 串口、COM口、TTL、RS-232、RS-485区别详解
1.串口.COM口是指的物理接口形式(硬件).而TTL.RS-232.RS-485是指的电平标准(电信号). 2.接设备的时候,一般只接GND RX TX.不会接Vcc或者+3.3v的电源线,避 ...
- es6小记
let, const, class, extends, super, arrow functions, template string, destructuring, default, rest ar ...
- 函数和常用模块【day05】:装饰器高潮(三)
本节内容 1.概述 2.装饰器定义 3.装饰器定义 4.带参数的生成器 一.概述 我们之前介绍了大幅片的内容,感觉跟装饰器半毛钱关系都没有,其实不然,我们分别详细阐述了高阶函数和内置函数,下面我们就来 ...
- 金融量化分析【day113】:羊驼策略
零.动量策略VS反转策略 1.实现代码 # 导入函数库 import jqdata import pandas as pd import numpy as np import datetime imp ...
- SQL连接服务器链接失败
链接服务器"AGPSServer"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "登录超时已过期".链接服务器" ...
- xml/map转换器,递归设计思路【纯原】
xml/map转换器 xml转换: xml/map转换器 xml合并: xml合并 snagit图片:http://pan.baidu.com/s/1nuKJD13 git样例: https://gi ...
- springboot(八)自定义Filter、自定义Property
自定义Filter 我们常常在项目中会使用filters用于录调用日志.排除有XSS威胁的字符.执行权限验证等等. Spring Boot自动添加了OrderedCharacterEncodingFi ...