run headless display inside X virtual framebuffer (Xvfb)
Project description
Manage headless displays with Xvfb (X virtual framebuffer)
Info:
Author: Corey Goldberg - 2012-2016
License: MIT
About xvfbwrapper:
xvfbwrapper is a python wrapper for controlling Xvfb.
About Xvfb:
Xvfb (X virtual framebuffer) is a display server implementing the X11 display server protocol. It runs in memory and does not require a physical display. Only a network layer is necessary.
Xvfb is especially useful for running acceptance tests on headless servers.
Install xvfbwrapper from PyPI:
pip install xvfbwrapper
System Requirements:
Xvfb (sudo apt-get install xvfb, or similar)
Python 2.7 or 3.3+
Examples
Basic Usage:
from xvfbwrapper import Xvfb vdisplay = Xvfb() vdisplay.start() # launch stuff inside # virtual display here. vdisplay.stop()
Basic Usage, specifying display geometry:
from xvfbwrapper import Xvfb vdisplay = Xvfb(width=1280, height=740, colordepth=16) vdisplay.start() # launch stuff inside # virtual display here. vdisplay.stop()
Usage as a Context Manager:
from xvfbwrapper import Xvfb with Xvfb() as xvfb: # launch stuff inside virtual display here. # It starts/stops around this code block.
Testing Example: Headless Selenium WebDriver Tests:
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()
The test class above uses selenium and xvfbwrapper to run each test case with Firefox inside a headless display.
virtual display is launched
Firefox launches inside virtual display (headless)
browser is not shown while tests are run
conditions are asserted in each test case
browser quits during cleanup
virtual display stops during cleanup
Look Ma’, no browser!
(You can also take screenshots inside the virtual display for diagnosing test failures)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.