用于管理xvfb会话/通过简单界面确保显示的python模块

xvfbman的Python项目详细描述


一个python模块,专注于管理xvfb会话/通过简单的界面确保显示。

为什么?

xvfb是x11虚拟帧缓冲区,基本上实现了一个没有监视器的显示,就在内存中。

这对于测试(例如与selenium结合使用)、分析或其他自动化任务非常有用。

如何

XVFBMAN模块提供了一个启动和管理XVFB会话的接口,以及提供一个公共接口,应用程序可以使用它来确保设置显示(无论是实际显示还是启动管理XVFB,该XVFB将在退出时关闭)。

确保显示

一个常见的用法是,如果已经设置了display,应用程序将使用display,否则将启动xvfb会话。

这可以通过^ {EM1} $ EnSurReDePrase和^ {EM1}$RealStaseExtCuffue来完成。

ensuredisplayepresent将检查是否设置了display环境变量,如果没有设置,则将启动xvfb会话并将display环境变量设置为匹配。

^ {EM1}$RealStaseExtCuffux将注册一个“ATEXIT”处理程序,它将确保我们打开的所有XVFB会话(如果有的话)将被关闭。

# 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 xvfbstartxvfbrange

按需启动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 xvfbstopAllManagedxvfbs

stop xvfb接受服务器号(整数)作为参数,并将停止在该显示器上运行的托管xvfb。

stopallmanagedxvfs将停止进程管理的所有xvfb会话

实用函数

正在使用xvfb-如果我们正在管理xvfb会话,则测试。参数的default/none将测试是否管理了any会话,或者传递一个整数将检查特定的服务器编号。

getdisplaystrforservernum-将服务器号转换为显示字符串(例如,用于display env var)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何下载多个。java中的PDF文件   linux Java打开文件,形成实际用户主页~/   java如何在时间线内维护TableView选择?   java Hibernate注释@Where vs@WhereJoinTable   Java读/写访问异常FileNotFoundException(访问被拒绝)   继承在Java中是否可以扩展最后一个类?   Android HttpClient使用java使应用程序崩溃。lang.OutOfMemoryError:pthread_create   java为什么即使我在proguardproject中添加了jar文件,也会出现这种错误。txt?   如果添加JButton,swing Java FocusListener和KeyListener将无法工作   java使用solrj检索json格式的SolrDocument   使用Microsoft Visual Studio代码进行Java编程   java NoClassDefFoundError:org/apache/log4j/Logger   哈希集中包含相等对象的java   java中的参数化构造函数是否需要有一个主体?   java类似于NetBeans不必要的代码检测器   Java实践问题   java Blackberry“[projectname].调试文件丢失”和“I/O错误:找不到程序”jar