Table of Contents
In this article, I will take you through the steps to install Geckodriver for Selenium in Linux using 4 simple steps. Geckodriver acts as a proxy for using W3C WebDriver-compatible clients to interact with Gecko-based browsers. It was developed by Mozilla Foundation and Mozilla Corporation. This program provides the HTTP API described by the WebDriver protocol to communicate with Gecko browsers, such as Firefox. It translates calls into the Firefox remote protocol by acting as a proxy between the local- and remote ends. More on official website. It is used in Selenium3 scripts to control the applications over Gecko browsers like Firefox. Here we will the steps to install Geckodriver in Linux.
How to Install Geckodriver for Selenium in Linux
Also Read: How to Install ReactJS on Ubuntu 20.04 LTS (Focal Fossa)
Step 1: Prerequisites
a) You should have a running Linux Server.
b) You should have sudo
or root
access to run privileged commands.
c) You should have any file transfer utility like wget
or curl
to download Geckodriver.
Step 2: Download Geckodriver
You can download the latest Geckodriver from GitHub using any of the file transfer utility like wget
or curl
. At the time of writing this article, 0.32.0
is the latest released version which we are downloading using wget
utility as shown below.
cyberithub@ubuntu:~$ wget https://github.com/mozilla/geckodriver/releases/download/v0.32.0/geckodriver-v0.32.0-linux64.tar.gz --2022-10-21 17:58:30-- https://github.com/mozilla/geckodriver/releases/download/v0.32.0/geckodriver-v0.32.0-linux64.tar.gz Resolving github.com (github.com)... 20.207.73.82 Connecting to github.com (github.com)|20.207.73.82|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/25354393/8e066757-fe10-45aa-b9a6-4b5660ff3abc?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221021%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221021T122831Z&X-Amz-Expires=300&X-Amz-Signature=6726f16d765997cef4fd6582ec1090a1ab549801453f751de1e51683ebf1d446&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=25354393&response-content-disposition=attachment%3B%20filename%3Dgeckodriver-v0.32.0-linux64.tar.gz&response-content-type=application%2Foctet-stream [following] --2022-10-21 17:58:31-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/25354393/8e066757-fe10-45aa-b9a6-4b5660ff3abc?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221021%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221021T122831Z&X-Amz-Expires=300&X-Amz-Signature=6726f16d765997cef4fd6582ec1090a1ab549801453f751de1e51683ebf1d446&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=25354393&response-content-disposition=attachment%3B%20filename%3Dgeckodriver-v0.32.0-linux64.tar.gz&response-content-type=application%2Foctet-stream Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.110.133, 185.199.109.133, 185.199.111.133, ... Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.110.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 2991185 (2.9M) [application/octet-stream] Saving to: ‘geckodriver-v0.32.0-linux64.tar.gz’ geckodriver-v0.32.0-linux64.tar.gz 100%[============================================================================>] 2.85M 6.86MB/s in 0.4s 2022-10-21 17:58:32 (6.86 MB/s) - ‘geckodriver-v0.32.0-linux64.tar.gz’ saved [2991185/2991185]
Step 3: Install Geckodriver
Next step is to extract the file in a directory from where you want to run the geckodriver tool. In our case, we are extracting it under /usr/local/bin
directory using sudo tar -xzvf geckodriver-v0.32.0-linux64.tar.gz -C /usr/local/bin
command as shown below.
cyberithub@ubuntu:~$ sudo tar -xzvf geckodriver-v0.32.0-linux64.tar.gz -C /usr/local/bin geckodriver
Step 4: Provide Execute Permission
Next, you need to provide execute permission using chmod +x /usr/local/bin/geckodriver
command to make it executable as shown below.
cyberithub@ubuntu:~$ chmod +x /usr/local/bin/geckodriver
Step 5: Export PATH (Optional)
If you have extracted Geckodriver to a location which is not visible under PATH
environment variable then you need to export the path using below export
command.
export PATH=$PATH:/extracted_file_path/
Step 6: Check Version
After successful installation, you can test it by running geckodriver -V
command as shown below.
cyberithub@ubuntu:~$ geckodriver -V geckodriver 0.32.0 (4563dd583110 2022-10-13 09:22 +0000) The source code of this program is available from testing/geckodriver in https://hg.mozilla.org/mozilla-central. This program is subject to the terms of the Mozilla Public License 2.0. You can obtain a copy of the license at https://mozilla.org/MPL/2.0/.
Step 7: Start Geckodriver
You can start the web browser engine by simply running geckodriver
on the terminal as shown below. By default, geckodriver would listen on Port 4444
.
cyberithub@ubuntu:~$ geckodriver 1666355812817 geckodriver INFO Listening on 127.0.0.1:4444
You can also change the Port number by passing the port number as an argument as shown below.
cyberithub@ubuntu:~$ geckodriver --port=5665 1666355914521 geckodriver INFO Listening on 127.0.0.1:5665
Step 8: Check all the Available Options
You can check all the options available with geckodriver
utility using geckodriver -h
command as shown below.
cyberithub@ubuntu:~$ geckodriver -h
geckodriver 0.32.0 (4563dd583110 2022-10-13 09:22 +0000)
WebDriver implementation for Firefox
USAGE:
geckodriver [OPTIONS]
OPTIONS:
--allow-hosts <ALLOW_HOSTS>... List of hostnames to allow. By default the value of --host is allowed, and in addition if that's a well known
local address, other variations on well known local addresses are allowed. If --allow-hosts is provided only
exactly those hosts are allowed.
--allow-origins <ALLOW_ORIGINS>... List of request origins to allow. These must be formatted as scheme://host:port. By default any request with
an origin header is rejected. If --allow-origins is provided then only exactly those origins are allowed.
--android-storage <ANDROID_STORAGE> Selects storage location to be used for test data (deprecated). [possible values: auto, app, internal, sdcard]
-b, --binary <BINARY> Path to the Firefox binary
--connect-existing Connect to an existing Firefox instance
-h, --help Prints this message
--host <HOST> Host IP to use for WebDriver server [default: 127.0.0.1]
--jsdebugger Attach browser toolbox debugger for Firefox
--log <LEVEL> Set Gecko log level [possible values: fatal, error, warn, info, config, debug, trace]
--marionette-host <HOST> Host to use to connect to Gecko [default: 127.0.0.1]
--marionette-port <PORT> Port to use to connect to Gecko [default: system-allocated port]
-p, --port <PORT> Port to use for WebDriver server [default: 4444]
--profile-root <PROFILE_ROOT> Directory in which to create profiles. Defaults to the system temporary directory.
-v Log level verbosity (-v for debug and -vv for trace level)
-V, --version Prints version and copying information
--websocket-port <PORT> Port to use to connect to WebDriver BiDi [default: 9222]