我的要求:我想在运行硒测试时捕获测试的屏幕视频。
我目前正在使用Monte Media Library。但它捕获了屏幕中发生的所有操作。我想只捕获测试浏览器。
有办法吗?
请帮帮我。
答案 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]