selenium - run tests on a virtual display
Selenium tests require browser to run, so usually we run them on the X-server enabled machine. But in some cases, like CI system running on the headless EC2 instance, we want to run it on the virtual display. This can be done using xvfb (X virtual framebuffer).
Set up
Install xvfb
sudo apt-get install xvfb
Install x11vnc
sudo apt-get install x11vnc
Run tests on virtual display
Start xvbf (virtual display number 99)
Xvfb -ac :99
Tell tests to run on virtual display
export DISPLAY=:99
Or inside the test code (python)
os.environ['DISPLAY'] = ':99'
...
selenium = webdriver.Firefox(firefox_profile=ffp, firefox_binary=ffb)
...
Watch tests running on virtual display
Start x11vnc server on the same display:
x11vnc -display :99
Use vnc client (for example, gtkvncviewer) to connect to the localhost and watch how tests are running.
Links
Hudson Ci Server Running Selenium/Webdriver Cucumber In Headless Mode Xvfb
close