如何在Windows x64上的python中记录Selenium Webdriver测试执行 [英] how to record selenium webdriver test executions in python on window x64

查看:74
本文介绍了如何在Windows x64上的python中记录Selenium Webdriver测试执行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用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:\Python27\lib\multiprocessing\process.py", line 258, in _bootstrap
    self.run()
  File "D:\Python27\lib\multiprocessing\process.py", line 114, in run
    self._target(*self._args, **self._kwargs)
  File "D:\Python27\lib\site-packages\castro\lib\pyvnc2swf\vnc2swf.py", line 611, in main
    merge=merge, debug=debug, reconnect=reconnect)
  File "D:\Python27\lib\site-packages\castro\lib\pyvnc2swf\vnc2swf.py", line 429, in vnc2swf
    client.loop()
  File "D:\Python27\lib\site-packages\castro\lib\pyvnc2swf\rfb.py", line 489, in loop
    if not self.loop1(): break
  File "D:\Python27\lib\site-packages\castro\lib\pyvnc2swf\rfb.py", line 276, in loop1
    self.request_update()
  File "D:\Python27\lib\site-packages\castro\lib\pyvnc2swf\rfb.py", line 551, in request_update
    self.send('\x03\x01' + 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.

我当前正在使用屏幕捕获-recorder (屏幕录制软件),它的工作原理就像一个魅力.它允许您设置帧率,分辨率,比特率以及选择不同的视频编解码器.

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

这篇关于如何在Windows x64上的python中记录Selenium Webdriver测试执行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆