==========================================================================================================

写在前面:

好久以前写的截屏和录屏的程序了,最近测广告曝光想录屏,就又拎起这部分内容了。

==========================================================================================================

首先,在以前的自动化框架程序里,定义了共通类,来实现截屏和录屏的功能,代码如下:

截屏代码:

    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的实际输出路径,自己的解决方案的更多相关文章

  1. 【Selenium-WebDriver实战篇】ScreenRecorder的实际输出路径设置(转)

    参考:https://www.cnblogs.com/yongfeiuall/p/4134139.html 我们可以用以下方式在Selenium Webdriver中capture video. 基本 ...

  2. 《一头扎进》系列之Python+Selenium框架实战篇7 - 年底升职加薪,年终奖全靠它!Merry Christmas

    1. 简介 截止到上一篇文章为止,框架基本完全搭建完成.那么今天我们要做什么呢????聪明如你的小伙伴或者是童鞋一定已经猜到了,都测试完了,当然是要生成一份高端大气上档次的测试报告了.没错的,今天宏哥 ...

  3. java selenium webdriver实战 seleniumIDE

    Selenium是ThoughtWorks公司,一个名为Jason Huggins的测试为了减少手工测试的工作量,自己实现的一套基于Javascript语言的代码库 使用这套库可以进行页面的交互操作, ...

  4. [转]java selenium webdriver实战 应用小结

    原文链接:http://www.cnblogs.com/itliucheng/p/5578788.html 部分api 1.访问网站 driver.get("http://www.baidu ...

  5. java selenium webdriver实战 应用小结

    部分api 1.访问网站 driver.get("http://www.baidu.com"); 或者 driver.navigate().to("http://www. ...

  6. java selenium webdriver实战 helloWord

    第一步:建立Maven项目 Selenium 支持 maven 工程,这会让你的工作更加简便. 用 Eclipse 建个 Maven 的工程,建成后,修改 pom.xml <dependenci ...

  7. java selenium webdriver实战 页面元素定位

    自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...

  8. Cmake 脚本对项目输出路径和输出头文件的路径定义

    对Lib项目的统一输出路径以下时解决方案: set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/Lib)set(CMAKE_LIBRARY_O ...

  9. 《手把手教你》系列基础篇(八十六)-java+ selenium自动化测试-框架设计基础-Log4j实现日志输出(详解教程)

    1.简介 自动化测试中如何输出日志文件.任何软件,都会涉及到日志输出.所以,在测试人员报bug,特别是崩溃的bug,一般都要提供软件产品的日志文件.开发通过看日志文件,知道这个崩溃产生的原因,至少知道 ...

随机推荐

  1. Java调用动态链接库so文件(传参以及处理返回值问题)

    刚来到公司,屁股还没坐稳,老板把我叫到办公室,就让我做一个小程序.我瞬间懵逼了.对小程序一窍不通,还好通过学习小程序视频,两天的时间就做了一个云开发的小程序,但是领导不想核心的代码被别人看到,给了我一 ...

  2. Maven中dependencyManagement作用说明

    https://blog.csdn.net/helllochun/article/details/81564921 在Maven多模块的时候,管理依赖关系是非常重要的,各种依赖包冲突,查询问题起来非常 ...

  3. Idea打jar包(包含依赖的jar)

    项目右键 ---> Open Module Settings 如下选择,点击OK 点击OK退出! 在Intellij Idea的菜单栏中依次选择“Build -> Build Artifa ...

  4. java网站架构演变过程

    网站架构演变过程. .传统架构.传统的SSH架构,分为三层架构web控制层.业务逻辑层.数据库访问层..传统架构也就是单点应用,就是大家在刚开始初学JavaEE技术的时候SSH架构或者SSM架构,业务 ...

  5. Go基础编程实践(三)—— 日期和时间

    日期和时间 package main import ( "fmt" "time" ) func main() { // 获取当前时间 current := ti ...

  6. 复制Linux虚拟机(VMware vSphere Client 工具)

    1.VMware vSphere Client 工具 登录,如下图          IP.用户名/密码均是物理机,登录完成界面: 2.选择一个复制的原虚拟机 A,点击左上角[文件]——导出——导出O ...

  7. 微信小程序文档

    提示框: wx.showToast(OBJECT) 显示消息提示框 OBJECT参数说明: 示例代码: wx.showToast({ title: '成功', icon: 'success', dur ...

  8. 记录screen屏幕日志

    1.建立日志存放目录#mkdir /var/log/screen/ 2.修改配置文件,在末尾添加配置内容#vi /etc/screenrclogfile /var/log/screen/%t.log ...

  9. PropTypes.element和PropTypes.node的区别

    PropTypes.element:指React Element,即React.CreateElement生成的元素,React.CreateElement可以用jsx语法糖表示: <MyBut ...

  10. Flink原理、实战与性能优化读书笔记

    第一章 ApacheFlink介绍 一.Flink优势 1. 目前唯一同时支持高吞吐.低延迟.高性能的分布式流式数据处理框架 2. 支持事件事件概念 3. 支持有状态计算,保持了事件原本产生的时序性, ...