So you have setup Jenkins as your build server and you test your project automated with Selenium WebDriver. Now you want to run the automated tests in a Jenkins job, but you get the following error:
. Caused by: org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
.
. (process:26912): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
. Error: cannot open display: :1
This post explains how to fix this. The reason is that the user that runs your Jenkins service does not have a display. Therefore there is no possibility to open a browser like Firefox.
In order the facilitate this, we will use xvfb. This is a display server that performs all graphical user interface [GUI] operations in memory and without showing any screen output.
1. Install FireFox on the machine that runs Jenkins
In /etc/apt/sources.list add the following line.
ppa:mozillateam/firefox-stable
Run the following commands to upgrade or install latest version of Firefox to work with Selenium.
sudo apt-get update
sudo apt-get install firefox
2. Install Xvfb on your server
Run the following command to install Xvfb on your server
apt-get install xvfb x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps
3. Install Xvfb in Jenkins
Install the Xvfb plugin https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin
Configure the plugin via Manage Jenkins / Configure System