跳转到主要内容

一个用于通过简单界面管理Xvfb会话/确保DISPLAY的Python模块

项目描述

一个专注于通过简单界面管理Xvfb会话/确保DISPLAY的Python模块。

为什么?

Xvfb是X11虚拟帧缓冲区,基本上在不带监视器的情况下实现显示,只是在内存中。

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

如何

xvfbman模块提供了一个接口来启动和管理Xvfb会话,同时也提供了一个应用程序可以使用的通用接口,以确保已设置DISPLAY(要么是实际显示,要么启动一个在退出时关闭的管理Xvfb)。

确保DISPLAY

常见的用法是,如果已设置DISPLAY,则您的应用程序使用DISPLAY,否则启动一个Xvfb会话。

这可以通过ensureDisplayPresentregisterAtExitCleanup来实现。

ensureDisplayPresent将检查DISPLAY环境变量是否设置,如果没有设置,它将启动一个Xvfb会话并设置DISPLAY环境变量以匹配。

registerAtExitCleanup将注册一个“atexit”处理程序,以确保我们打开的所有Xvfb会话(如果有的话)都将被关闭。

# 如果我们设置了Xvfb,则返回True,如果DISPLAY已经设置,则返回False

if ensureDisplayPresent()

# 如果我们设置了Xvfb,则注册清理函数

registerAtExitCleanup()

启动Xvfb会话

您可以通过startXvfbstartXvfbRange按需启动Xvfb实例

startXvfb接受一个参数serverNum,该参数指定服务器(例如,serverNum=50将表示DISPLAY :50.0)。您还可以覆盖“screenStr”的默认值(1280x720x24)以指定不同的分辨率和深度。

startXvfbRange接受两个参数startServerNum和lastServerNum以及可选的screenStr,并尝试在包含范围内的每个服务器号/显示号上启动一个服务器。如果显示号已被使用,它将移动到下一个。

这将返回最终使用的服务器号。

如果您的应用程序可以运行多个实例,或者存在服务器号争用的情况,请使用此函数。

try

# 从:50到:99启动Xvfb并返回使用的实例

serverNum = startXvfbRange(50, 99)

except KeyError

# 50-99号的所有服务器都在使用中

raise

except OSError

# 发生了其他错误,阻止Xvfb正常运行

#(异常信息将包含输出)

停止Xvfb会话

您可以通过stopXvfbstopAllManagedXvfbs停止Xvfb实例

stopXvfb接受一个服务器号(整数)作为参数,并将停止在该显示上运行的受管理Xvfb。

stopAllManagedXvfbs将停止由进程管理的所有Xvfb会话

实用函数

isUsingXvfb - 检查我们是否在管理Xvfb会话。默认/ None参数将检查是否有任何会话被管理,或者通过传递一个整数来检查特定的服务器号。

getDisplayStrForServerNum - 将服务器号转换为DISPLAY字符串(例如,用于DISPLAY环境变量)

完整PyDoc

可以在http://htmlpreview.github.io/?https://github.com/kata198/xvfbman/blob/master/doc/xvfbman.html?vers=1.0.0找到。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

xvfbman-1.0.0.tar.gz (19.5 kB 查看哈希值

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面