用于管理xvfb会话/通过简单界面确保显示的python模块
xvfbman的Python项目详细描述
一个python模块,专注于管理xvfb会话/通过简单的界面确保显示。
为什么?
xvfb是x11虚拟帧缓冲区,基本上实现了一个没有监视器的显示,就在内存中。
这对于测试(例如与selenium结合使用)、分析或其他自动化任务非常有用。
如何
XVFBMAN模块提供了一个启动和管理XVFB会话的接口,以及提供一个公共接口,应用程序可以使用它来确保设置显示(无论是实际显示还是启动管理XVFB,该XVFB将在退出时关闭)。
确保显示
一个常见的用法是,如果已经设置了display,应用程序将使用display,否则将启动xvfb会话。
这可以通过^ {EM1} $ EnSurReDePrase
ensuredisplayepresent将检查是否设置了display环境变量,如果没有设置,则将启动xvfb会话并将display环境变量设置为匹配。
^ {EM1}$RealStaseExtCuffux
# Returns True if we setup an Xvfb, False if DISPLAY already set
if ensureDisplayPresent():
# If we setup an Xvfb, register the cleanup function
registerAtExitCleanup()
启动xvfb会话
您可以通过start xvfb或startxvfbrange
按需启动xvfb实例。startxvfb接受一个参数servernum,该参数指定服务器(e.x.servernum=50将显示:50.0)。也可以重写“screenstr”(1280x720x24)的默认值,以指定不同的分辨率和深度。
startxvbrange接受两个参数startservernum和lastservernum以及可选的screenstr,并尝试在该包含范围内的每个服务器号/显示号上启动服务器。如果显示号码已在使用中,它将移动到下一个号码。
这将返回最终被使用的服务器编号。
如果您的应用程序可以运行多个实例,或者在任何情况下都可能发生服务器号争用,请使用此函数。
try:
# Start an Xvfb anywhere from :50 to :99 and return the one used
serverNum = startXvfbRange(50, 99)
除了按键错误:
# All servers 50-99 were in use
raise
除了错误:
# Other error occured preventing Xvfb from working properly
# (Exception message will contain the output)
正在停止xvfb会话
您可以通过stop xvfb或stopAllManagedxvfbs
stop xvfb接受服务器号(整数)作为参数,并将停止在该显示器上运行的托管xvfb。
stopallmanagedxvfs将停止进程管理的所有xvfb会话
实用函数
正在使用xvfb-如果我们正在管理xvfb会话,则测试。参数的default/none将测试是否管理了any会话,或者传递一个整数将检查特定的服务器编号。
getdisplaystrforservernum-将服务器号转换为显示字符串(例如,用于display env var)
完整的pydoc
可以在http://htmlpreview.github.io/?https://github.com/kata198/xvfbman/blob/master/doc/xvfbman.html找到吗?版本=1.0.0。