在X虚拟帧缓冲区(Xvfb)内运行无头显示
项目描述
使用Xvfb(X虚拟帧缓冲区)管理无头显示
信息
作者: Corey Goldberg - 2012-2016
许可证: MIT
关于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()
上面的测试类使用 selenium 和 xvfbwrapper 在无头显示中运行每个测试案例,使用 Firefox。
启动虚拟显示
在虚拟显示中启动 Firefox(无头模式)
测试运行时浏览器不显示
在每个测试案例中断言条件
清理时浏览器退出
清理时停止虚拟显示
看吧,没有浏览器!
(您还可以在虚拟显示中进行截图以诊断测试失败)
项目详情
关闭
xvfbwrapper-0.2.9.tar.gz 的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | bcf4ae571941b40254faf7a73432dfc119ad21ce688f1fdec533067037ecfc24 |
|
MD5 | 3f3cbed698606f4b14e76ccc7b5dd366 |
|
BLAKE2b-256 | 57b64920eabda9b49630dea58745e79f9919aba6408d460afe758bf6e9b21a04 |