【Selenium-WebDriver实战篇】ScreenRecorder的实际输出路径,自己的解决方案
==========================================================================================================
写在前面:
好久以前写的截屏和录屏的程序了,最近测广告曝光想录屏,就又拎起这部分内容了。
==========================================================================================================
首先,在以前的自动化框架程序里,定义了共通类,来实现截屏和录屏的功能,代码如下:
截屏代码:
public static void TakeScreenShot(String strFileName) throws IOException {
if (CommonConstants.SCREEN_SHORT_FLAG) {
WebDriver driver = TestBase.getWebDriver();
File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
// get local system time
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String strTimeStampFileName = dateFormat.format(now) + "_" + strFileName;
// Use timestamp file name
String strFilePath = CommonConstants.SCREENSHOT_PATH + strTimeStampFileName + ".jpg";
FileUtils.copyFile(screenshot, new File(strFilePath));
}
}
录屏初始化代码:
public static void InitScreenRecorder(String strFileName) throws IOException, AWTException {
if (CommonConstants.SCREEN_RECORDER_FLAG) {
// video Save Path:C:users<<UserName>>Videos
GraphicsConfiguration gconfig = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice()
.getDefaultConfiguration();
org.monte.media.Format fileFormat = new org.monte.media.Format(MediaTypeKey, MediaType.FILE, MimeTypeKey,
MIME_AVI);
org.monte.media.Format screenFormat = new org.monte.media.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));
org.monte.media.Format mouseFormat = new org.monte.media.Format(MediaTypeKey, MediaType.VIDEO, EncodingKey,
"black", FrameRateKey, Rational.valueOf(30));
screenRecorder = new ScreenRecorder(gconfig, fileFormat, screenFormat, mouseFormat, null);
}
}
开始录屏:
public static void startScreenRecorder() throws IOException {
if (CommonConstants.SCREEN_RECORDER_FLAG) {
// Start Capturing the Video
screenRecorder.start();
}
}
结束录屏:
public static void stopScreenRecorder() throws IOException {
if (CommonConstants.SCREEN_RECORDER_FLAG) {
// Stop the ScreenRecorder
screenRecorder.stop();
}
}
由于默认的录屏工具,录完屏存储的地址是默认:
C:users<<UserName>>Videos
不满足我现在想存储在指定目录下的需求,所以就重新调用screenRecorder构造函数:
// screenRecorder = new ScreenRecorder(gconfig, fileFormat,
// screenFormat, mouseFormat, null); // get local system time
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String strTimeStampFileName = dateFormat.format(now) + "_" + strFileName;
String strFilePath = CommonConstants.SCREENRECORD_PATH + strTimeStampFileName;
File movieFolder = new File(strFilePath);
screenRecorder = new ScreenRecorder(gconfig, null, fileFormat, screenFormat, mouseFormat, null,
movieFolder);
将构造函数增加了movieFolder的参数,然后就可以想怎么存就怎么存取了。
【Selenium-WebDriver实战篇】ScreenRecorder的实际输出路径,自己的解决方案的更多相关文章
- 【Selenium-WebDriver实战篇】ScreenRecorder的实际输出路径设置(转)
参考:https://www.cnblogs.com/yongfeiuall/p/4134139.html 我们可以用以下方式在Selenium Webdriver中capture video. 基本 ...
- 《一头扎进》系列之Python+Selenium框架实战篇7 - 年底升职加薪,年终奖全靠它!Merry Christmas
1. 简介 截止到上一篇文章为止,框架基本完全搭建完成.那么今天我们要做什么呢????聪明如你的小伙伴或者是童鞋一定已经猜到了,都测试完了,当然是要生成一份高端大气上档次的测试报告了.没错的,今天宏哥 ...
- java selenium webdriver实战 seleniumIDE
Selenium是ThoughtWorks公司,一个名为Jason Huggins的测试为了减少手工测试的工作量,自己实现的一套基于Javascript语言的代码库 使用这套库可以进行页面的交互操作, ...
- [转]java selenium webdriver实战 应用小结
原文链接:http://www.cnblogs.com/itliucheng/p/5578788.html 部分api 1.访问网站 driver.get("http://www.baidu ...
- java selenium webdriver实战 应用小结
部分api 1.访问网站 driver.get("http://www.baidu.com"); 或者 driver.navigate().to("http://www. ...
- java selenium webdriver实战 helloWord
第一步:建立Maven项目 Selenium 支持 maven 工程,这会让你的工作更加简便. 用 Eclipse 建个 Maven 的工程,建成后,修改 pom.xml <dependenci ...
- java selenium webdriver实战 页面元素定位
自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...
- Cmake 脚本对项目输出路径和输出头文件的路径定义
对Lib项目的统一输出路径以下时解决方案: set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)set(CMAKE_LIBRARY_O ...
- 《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)
1.简介 自动化测试中如何输出日志文件.任何软件,都会涉及到日志输出.所以,在测试人员报bug,特别是崩溃的bug,一般都要提供软件产品的日志文件.开发通过看日志文件,知道这个崩溃产生的原因,至少知道 ...
随机推荐
- myssl.com SSL 检测
配置正确了,就正常了. 与证书关系不大.
- [IOT] - 使用 .Net Core 操作 GPIO 引脚点亮 LED 灯泡
1. 在 VS 2019 中创建 .Net Core 控制台应用程序,使用 Nuget 安装程序包: System.Device.GpioIot.Device.Bindings 2. 更新 Main ...
- JavaSE面试题:类初始化和实例初始化等
类初始化过程 1.一个类要创建实例需要先加载并初始化该类 main方法所在的类需要先加载和初始化 2.一个子类要初始化需要先初始化父类 3.一个类初始化就是执行<clinit>()方法 & ...
- MyBatis参数条件查询传入的值为0时的判断
MyBatis条件查询对字段判断是否为空一般为: <if test="testValue!=null and testValue != ''"> and test_va ...
- Delphi文字转语音TTS【支持选择语音库,播放,暂停,开始,停止,生成语音文件,设置音量,设置语速】
作者QQ:(648437169) 点击下载➨文字转语音TTS [Delphi 文字转语音TTS]调用系统自带的TTS组件,支持XP,vista,win7,win8,win10系统,支持选择语音库,播放 ...
- SQLserver将查询的字段中的数据 拼接成字符串用逗号隔开
,,'') 将查询的字段中的数据 拼接成字符串用逗号隔开
- sso cas 坑
一个中文文档地址: http://www.cassso-china.cn/apereo_github_cas_5.2/apereo.github.io/cas/5.2.x/ ============= ...
- .net core webapi通过中间件获取请求和响应内容
本文主要根据中间件来实现对.net core webapi中产生的请求和响应数据进行获取并存入日志文件中: 这里不详细介绍日志文件的使用.你可以自己接入NLog,log4net,Exceptionle ...
- JavaScript判断是否是正确数值 isNaN
NaN在JavaScript中表示不是数字 JavaScript中isNaN函数方法是返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字). 使用方法:isNaN(numVal ...
- Java框架之MyBatis框架(二)
Mybatis框架是相对于优化dao层的框架,其有效的减少了频繁的连接数据库(在配置文件xml中进行配置),将sql语句与java代码进行分离(写在XXXXmapper.xml文件中,一个表对应一个x ...