运行Selenium测试时捕获屏幕视频

时间:2016-02-09 02:18:09

标签: selenium automation video-capture

我的要求:我想在运行硒测试时捕获测试的屏幕视频。

我目前正在使用Monte Media Library。但它捕获了屏幕中发生的所有操作。我想只捕获测试浏览器。

有办法吗?

请帮帮我。

1 个答案:

答案 0 :(得分:1)

工作解决方案,不使用任何额外的库,是通过TakesScreenshot接口实现您自己的录制功能。这对HTML5游戏自动化非常有用。您仍然可以并行运行测试并记录每个浏览器/测试发生的情况。

简单使用:

 import static openqa.selenium.OutputType.*;

 File screenshotFile = ((Screenshot)driver).getScreenshotAs(file);
 String screenshotBase64 = ((Screenshot)driver).getScreenshotAs(base64);

测试的主线程将保持不变。在second Thread中,您每5秒运行一次此代码段(或者您想要的频率,并且您的计算机可以跟上)并将帧存储在Queue中。因此,例如,您只需要保留最后12项(最后一分钟)。此数据结构为添加,轮询等提供先进先出(FIFO)操作。

Apache Commons集合4有一个CircularFifoQueue<>,你可以开箱即用。

  

CircularFifoQueue是一个先进先出队列,其大小固定   如果已满,则替换其最旧的元素。

简单使用:

import java.util.Queue;
import org.apache.commons.collections4.queue.CircularFifoQueue;

Queue<Integer> fifo = new CircularFifoQueue<Integer>(12);
fifo.add(1);
fifo.add(2);
fifo.add(3);
System.out.println(fifo);

// Observe the result: 
// [2, 3]