Ubuntu 16.04 Server Install headless Google Chrome

Update: added java code running Chrome in headless mode.
You can see these videos on this topic examples here:

Problem

If you want to run headless test in Ubuntu 16.04 you can do this by installing latest available version of Chrome. Then all you need to do is to run the browser with good settings.

Solution Install Google Chrome on Ubuntu 16.04 GUI

  • Go to https://www.google.com/chrome
  • Click the Download Chrome button.
  • Choose your version and accept - 64 bit .deb for Mint/Ubuntu
  • Open it by Ubuntu Software
  • Click the Install button to install google-chrome-stable
  • Enter your password
  • start by google-chrome-stable

Installation is straightforward and can be done with several commands:

sudo apt-get update
sudo apt-get install -y libappindicator1 fonts-liberation
cd /temp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb

Solution Install Google Chrome on Ubuntu 16.04 Quick

If you you just want quick chrome installation you can do it by:

cd temp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i --force-depends google-chrome-stable_current_amd64.deb
sudo apt-get install -f

Solution Install Google Chrome on Ubuntu 16.04 no GUI

Installation is straightforward and can be done with several commands:

sudo apt-get update
sudo apt-get install -y libappindicator1 fonts-liberation
cd temp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb

This is going to install dependencies required for chrome to be installed.

In case of error related to unmet dependencies you can do:

sudo apt-get -f install
sudo dpkg --configure -a

As last option you can try with:

sudo apt-get -u dist-upgrade

and then to try to installed it again.

Other optional dependencies :

sudo apt-get -y install dbus-x11 xfonts-base xfonts-100dpi xfonts-75dpi xfonts-cyrillic xfonts-scalable

More info about chrome installation

If you like to have script which is preparing and installing all required libraries you can check here:

Install Chrome, ChromeDriver and Selenium on Ubuntu 16.04

Install Chrome, ChromeDriver and Selenium

Test installation version

Verify the version and is it install by

google-chrome-stable -version

If you want to test work in headless mode you can do:

google-chrome-stable --headless --disable-gpu --dump-dom https://www.chromestatus.com/

and check the output picture

or simply by checking for running process:

ps aux | grep chrome

If you want to print PDF or take screenshot in headless mode:

google-chrome-stable --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/
google-chrome-stable --headless --disable-gpu --screenshot https://www.chromestatus.com/

Note: in some cases you may need to run:

chrome --headless --disable-gpu --dump-dom https://www.chromestatus.com/

Execute headless test with Java, Chrome and Selenium

Simple test with java 8, Selenium 3.5.3 and ChromeDriver to run chrome in headless mode:

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class Test {

    public static void main(String[] args) {

        //set chrome driver, headless mode
        String driverPath = "/home/guest/chromedriver";
        System.setProperty("webdriver.chrome.driver", driverPath);
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--headless");

        //create new driver
        ChromeDriver driver = new ChromeDriver(options);

        //get google page and print title
        String page = "http://google.com";
        driver.get(page);
        System.out.println( "Title of the page is -> " + driver.getTitle());

        // find the search edit box on the google page
        WebElement searchBox = driver.findElement(By.name("q"));

        // type in Selenium - Softhints
        searchBox.sendKeys("Softhints");
        searchBox.submit();

        //verify the new page title
        System.out.println( "Title of the page is -> " + driver.getTitle());

        driver.close();
        driver.quit();
    }

}

Execute headless test with Groovy, Chrome and Selenium

This is simple groovy code which is doing headless test on Ubuntu Server using Selenium 3.5.3 and ChromeDriver. In order to use it you need to download web driver by:

mkdir driver
wget https://chromedriver.storage.googleapis.com/2.35/chromedriver_linux64.zip
cd driver
unzip chromedriver_linux64.zip 

Next code open Google Chrome in headless mode on Ubuntu Server. Open page google.com and print the title. Then search for Softhints and print the title.

@Grab("org.seleniumhq.selenium:selenium-chrome-driver:3.5.3")
@Grab("org.seleniumhq.selenium:selenium-support:3.5.3")

import org.openqa.selenium.By
import org.openqa.selenium.WebElement
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.chrome.ChromeOptions

def driverPath = ""

driverPath = /\/home\/user\/driver\/chromedriver/
System.setProperty("webdriver.chrome.driver", driverPath);
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");


ChromeDriver driver = new ChromeDriver(options);

def page = "http://google.com"

        driver.get(page)

        println "Title of the page is -> " + driver.getTitle()

        // find the search edit box on the google page
        WebElement searchBox = driver.findElement(By.name("q"))

        // type in Selenium
        searchBox.sendKeys("Softhints");

        // find the search button
        WebElement button = driver.findElement(By.name("btnK"))

        // Click the button
       button.click();

       println "Title of the page is -> " + driver.getTitle()

driver.close();
driver.quit();

the result of the execution is:

Starting ChromeDriver 2.35.528139 (47ead77cb35ad2a9a83248b292151462a66cd881) on port 8528
Only local connections are allowed.
Jan 30, 2018 3:39:10 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Title of the page is -> Google

Title of the page is -> Softhints - Google ???????

Install groovy and Java

If you want to test this code on your server you can install Java and Groovy by:

sudo apt-get install default-jre
sudo apt-get install default-jdk
sudo apt-get install curl unzip zip
curl -s get.sdkman.io | bash
source "$HOME/.sdkman/bin/sdkman-init.sh" #or simply open new terminal
sdk install groovy
groovy -v

Test installation by groovy -v and the result should be:

Groovy Version: 2.4.13 JVM: 1.8.0_151 Vendor: Oracle Corporation OS: Linux

Related Article