一个用于通过简单界面管理Xvfb会话/确保DISPLAY的Python模块
项目描述
一个专注于通过简单界面管理Xvfb会话/确保DISPLAY的Python模块。
为什么?
Xvfb是X11虚拟帧缓冲区,基本上在不带监视器的情况下实现显示,只是在内存中。
这对于测试(例如与selenium结合使用)或其它自动化任务非常有用。
如何
xvfbman模块提供了一个接口来启动和管理Xvfb会话,同时也提供了一个应用程序可以使用的通用接口,以确保已设置DISPLAY(要么是实际显示,要么启动一个在退出时关闭的管理Xvfb)。
确保DISPLAY
常见的用法是,如果已设置DISPLAY,则您的应用程序使用DISPLAY,否则启动一个Xvfb会话。
这可以通过ensureDisplayPresent和registerAtExitCleanup来实现。
ensureDisplayPresent将检查DISPLAY环境变量是否设置,如果没有设置,它将启动一个Xvfb会话并设置DISPLAY环境变量以匹配。
registerAtExitCleanup将注册一个“atexit”处理程序,以确保我们打开的所有Xvfb会话(如果有的话)都将被关闭。
# 如果我们设置了Xvfb,则返回True,如果DISPLAY已经设置,则返回False
if ensureDisplayPresent()
# 如果我们设置了Xvfb,则注册清理函数
registerAtExitCleanup()
启动Xvfb会话
您可以通过startXvfb或startXvfbRange按需启动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会话
您可以通过stopXvfb或stopAllManagedXvfbs停止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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8ece4bdbc28d0c71032fc685f191a50e30b7124ffdac529461753cd7beeb97fd |
|
MD5 | f3ea078a91d75ce60d55eeb70aee2788 |
|
BLAKE2b-256 | 1ff3c5266fac56dc69ee7f11e30e1ea4a0ef43ca80cd1d63428420aabae6f3e7 |