Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行Selenium测试时捕获屏幕视频_Selenium_Automation_Video Capture - Fatal编程技术网

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

运行Selenium测试时捕获屏幕视频,selenium,automation,video-capture,Selenium,Automation,Video Capture,我的要求:我想在运行selenium测试时捕获测试的屏幕视频 我目前正在使用Monte媒体库。但它捕获了屏幕上发生的所有动作。我只想捕获测试浏览器 有办法吗 请帮助我。不使用任何额外库的工作解决方案是通过接口实现您自己的录制功能。这对HTML5游戏自动化非常有帮助。您仍然可以并行运行测试,并记录每个浏览器/测试发生的情况 简单使用: import static openqa.selenium.OutputType.*; File screenshotFile = ((Screenshot)

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

我目前正在使用Monte媒体库。但它捕获了屏幕上发生的所有动作。我只想捕获测试浏览器

有办法吗


请帮助我。

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

简单使用:

 import static openqa.selenium.OutputType.*;

 File screenshotFile = ((Screenshot)driver).getScreenshotAs(file);
 String screenshotBase64 = ((Screenshot)driver).getScreenshotAs(base64);
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]
测试的主线程将保持不变。在本例中,您每5秒运行一次此代码段(或您希望的频率,您的机器可以跟上),并将帧存储在一个内存中。例如,您只需要保留最后12项(最后一分钟)。此数据结构为添加、轮询等提供先进先出(FIFO)操作

ApacheCommonsCollections4有一个
CircularFifQueue
,您可以直接使用它

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

简单使用:

 import static openqa.selenium.OutputType.*;

 File screenshotFile = ((Screenshot)driver).getScreenshotAs(file);
 String screenshotBase64 = ((Screenshot)driver).getScreenshotAs(base64);
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]
import java.util.Queue;
导入org.apache.commons.collections4.queue.CircularFifoQueue;
队列fifo=新循环fifo(12);
先进先出。添加(1);
先进先出。添加(2);
先进先出。添加(3);
系统输出打印LN(fifo);
//观察结果:
// [2, 3]

driver.getScreenshotAs捕获单个屏幕快照需要很长时间,我将其与C#实现一起使用
Screenshot ss=((iTakeShreenshot)driver).GetScreenshot()并且它在一秒钟内工作。找到一个屏幕录制程序,可以集中在特定的应用程序上。。。我不明白这怎么会是一个编程问题。