跳转到主要内容

在X虚拟帧缓冲区(Xvfb)内运行无头显示

项目描述

使用Xvfb(X虚拟帧缓冲区)管理无头显示

https://travis-ci.org/cgoldberg/xvfbwrapper.svg?branch=master

信息


关于xvfbwrapper

xvfbwrapper是控制Xvfb的Python包装器。


关于Xvfb

Xvfb(X虚拟帧缓冲区)是一个实现X11显示服务器协议的显示服务器。它在内存中运行,不需要物理显示。只需要一个网络层。

Xvfb特别适用于在无头服务器上运行验收测试。


从PyPI安装xvfbwrapper

pip安装xvfbwrapper


系统要求

  • Xvfb(sudo apt-get install xvfb或类似命令)

  • Python 2.7或3.3+


示例

基本用法

from xvfbwrapper import Xvfb

vdisplay = Xvfb()
vdisplay.start()

# launch stuff inside
# virtual display here.

vdisplay.stop()

基本用法,指定显示几何形状

from xvfbwrapper import Xvfb

vdisplay = Xvfb(width=1280, height=740, colordepth=16)
vdisplay.start()

# launch stuff inside
# virtual display here.

vdisplay.stop()

作为上下文管理器的用法

from xvfbwrapper import Xvfb

with Xvfb() as xvfb:
    # launch stuff inside virtual display here.
    # It starts/stops around this code block.

测试示例:无头Selenium WebDriver测试

import unittest

from selenium import webdriver
from xvfbwrapper import Xvfb


class TestPages(unittest.TestCase):

    def setUp(self):
        self.xvfb = Xvfb(width=1280, height=720)
        self.addCleanup(self.xvfb.stop)
        self.xvfb.start()
        self.browser = webdriver.Firefox()
        self.addCleanup(self.browser.quit)

    def testUbuntuHomepage(self):
        self.browser.get('http://www.ubuntu.com')
        self.assertIn('Ubuntu', self.browser.title)

    def testGoogleHomepage(self):
        self.browser.get('http://www.google.com')
        self.assertIn('Google', self.browser.title)


if __name__ == '__main__':
    unittest.main()

上面的测试类使用 seleniumxvfbwrapper 在无头显示中运行每个测试案例,使用 Firefox。

  • 启动虚拟显示

  • 在虚拟显示中启动 Firefox(无头模式)

  • 测试运行时浏览器不显示

  • 在每个测试案例中断言条件

  • 清理时浏览器退出

  • 清理时停止虚拟显示

看吧,没有浏览器!

(您还可以在虚拟显示中进行截图以诊断测试失败)

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。

源分布

xvfbwrapper-0.2.9.tar.gz (5.6 kB 查看散列值)

上传时间

由以下支持