Recently I found that Firefox supports headless mode on Linux for a month now. Windows and MacOS are now in beta and will be released on September 26, 2017. I was pretty excited to find out so I immediately switched over Travis configuration for Selenium tests in my Django project.
When running CI in windowed I had to setup virtual framebuffer in
export DISPLAY=:99.0 sh -e /etc/init.d/xvfb start sleep 3
Meaning that by going headless I could save at least three seconds of CI runtime!
How to do it?
All we need to do is to make sure that we are using at least Firefox 55 and then set
MOZ_HEADLESS=1 environment variable. That's right. One environment variable!
.travis.yml from auto-fisera project.
language: python addons: firefox: latest services: - postgresql python: - '3.6' before_install: - wget https://github.com/mozilla/geckodriver/releases/download/v0.18.0/geckodriver-v0.18.0-linux64.tar.gz - mkdir geckodriver - tar -xzf geckodriver-v0.18.0-linux64.tar.gz -C geckodriver - export PATH=$PATH:$PWD/geckodriver - geckodriver --version - export MOZ_HEADLESS=1 # command to install dependencies install: pip install -r requirements.txt # command to run tests script: python manage.py test
Keep in mind that headless mode is supported in Firefox 56 on Windows and MacOS.