問題描述
使用 python 綁定 selenium3 webdriver 進行測試自動化,使用 castro 記錄執行步驟,但在 Windows 7 x64 上失敗.
Using python binding selenium3 webdriver for test automation, to record execution steps using castro but it is failing on Windows 7 x64.
是否有任何其他庫或模塊可用于記錄目的
Is there any other library or module which can be used for recording purpose
帶有 castro 的代碼
Code with castro
from castro import Castro
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
def my_video_record():
castroObject = Castro(filename="video/mytest.swf")
castroObject.start()
firefoxDriver = webdriver.Firefox(executable_path="firefox_geckodriver64bit/geckodriver")
firefoxDriver.get("https://www.python.org")
assert "Python" in firefoxDriver.title
sleep(1)
firefoxDriver.quit()
castroObject.stop()
if __name__ == '__main__':
my_video_record()
但它會在我的 Windows7 x64 上引發錯誤
But it throws error on my Windows7 x64
Socket error: [Errno 10061] No connection could be made because the target machine actively refused it
Process Process-1:
Traceback (most recent call last):
File "D:Python27libmultiprocessingprocess.py", line 258, in _bootstrap
self.run()
File "D:Python27libmultiprocessingprocess.py", line 114, in run
self._target(*self._args, **self._kwargs)
File "D:Python27libsite-packagescastrolibpyvnc2swfvnc2swf.py", line 611, in main
merge=merge, debug=debug, reconnect=reconnect)
File "D:Python27libsite-packagescastrolibpyvnc2swfvnc2swf.py", line 429, in vnc2swf
client.loop()
File "D:Python27libsite-packagescastrolibpyvnc2swf
fb.py", line 489, in loop
if not self.loop1(): break
File "D:Python27libsite-packagescastrolibpyvnc2swf
fb.py", line 276, in loop1
self.request_update()
File "D:Python27libsite-packagescastrolibpyvnc2swf
fb.py", line 551, in request_update
self.send('x03x01' + pack('>HHHH', *self.clipping))
AttributeError: RFBNetworkClient instance has no attribute 'clipping'
推薦答案
我不推薦使用 castro.它真的過時了,我已經嘗試在自己的測試中使用它并且確實讓它運行但它太不穩定了.
I do not recommend using castro. It's really outdated, I've tried using it in my own tests and did get it running but it was too unstable.
我目前正在使用 (屏幕錄制軟件),它就像一個魅力.它允許您設置幀率、分辨率、比特率以及選擇不同的視頻編解碼器.
I'm currently using ffmpeg together with screen-capture-recorder (screen recording software) and it works like a charm. It allows you to set the framerate, resolution, bitrate as well as chose different video codec.
代碼如下所示:
from subprocess import Popen
from subprocess import call
cmd = 'ffmpeg -y -rtbufsize 2000M -f dshow -i video="screen-capture-recorder" -s 1920x1080 -b:v 512k -r 20 -vcodec libx264 test.avi'
def terminate(process):
if process.poll() is None:
call('taskkill /F /T /PID ' + str(process.pid))
videoRecording = Popen(cmd) # start recording
terminate(videoRecording) # terminates recording
這篇關于如何在window x64上的python中記錄selenium webdriver測試執行的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!