J'essaie d'exécuter un testcase en utilisant Selenium Python et je veux enregistrer une vidéo sur chaque testcase, mais quand j'essaie, la sortie est toujours corrompue. Le processus FFMPEG est en cours d'exécution, aucune erreur n'apparaît sur la ligne de sortie. Je joins mon code, s'il vous plaît quelqu'un peut m'aider s'il y a quelque chose que je dois ajouter ou enlever.
voici le premier fichier, pour enregistreur :
import subprocess
from subprocess import Popen
from subprocess import call
class recorderMethod():
videoRecording = None
@staticmethod
def recorder_start(res,name):
rec_lib = 'ffmpeg -y -rtbufsize 2000M -f dshow -i video="screen-capture-recorder" -s '
resolution = res
buffer = ' -b:v 512k -r 20 -vcodec libx264 '
filename = name
extension = '.mp4'
complete_command = rec_lib+resolution+buffer+filename+extension
recorderMethod.videoRecording = Popen(str(complete_command))
@staticmethod
def recorder_stop():
if recorderMethod.videoRecording.poll() is None:
call('taskkill /F /T /PID ' + str(recorderMethod.videoRecording.pid))
voici le fichier de test principal pour enregistrer la vidéo
import unittest
import recorder_main
from selenium import webdriver
from time import sleep
class recordingTest(unittest.TestCase):
#init test
browser = webdriver.Chrome()
baseurl = 'http://www.facebook.com/'
record = recorder_main.recorderMethod
#setup
def setUp(self):
#declare to use browser
self.driver = recordingTest.browser
#make variable for easy access
driver = self.driver
#maximize Firefox
driver.maximize_window()
#go to maukerja
driver.get(recordingTest.baseurl)
#test001
def test_001_record(self):
#start recording
recordingTest.record.recorder_start('1920x1080','Test_Sleep')
sleep(10)
#stop_recording
recordingTest.record.recorder_stop()
#teardown
def test_999_ShutDownTest(self):
self.driver.close()
if __name__ == '__main__':
unittest.main(exit=False)