How to install GeckoDriver for Selenium Python?

Related Product On This Page What is GeckoDriver?How Does GeckoDriv

February 22, 2026 · 12 min read · Tool Comparison
Related Product

How to install GeckoDriver for Selenium Python?

GeckoDriver acts as a link between your Selenium tests and Firefox, facilitating browser automation. It ’ s needed when using Firefox with Selenium in Python.

Overview

What is GeckoDriver

GeckoDriver is a web browser engine that is used by a lot of applications built by the Mozilla Corporation. It is apply as a proxy by the W3C WebDriver-compatible clients to interact with Gecko browsers.

Benefits of Using GeckoDriver for Selenium Python

  • Cross-platform compatibility
  • W3C WebDriver compliance
  • Headless execution
  • Active support & amp; updates
  • Enhanced debugging

This guide explains in detail how to instal GeckoDriver for Selenium Python.

What is GeckoDriver?

GeckoDriver is a web browser locomotive that facilitates communicating between the API and Mozilla Firefox. Using the GeckoDriver protocol, the bidding are interpret into a format that Firefox understands. This allows the automation of browser activeness in Firefox. Since Firefox does not support the legacy driver built into Selenium any longer, using Geckodriver is quite important for running Selenium tests on Firefox.

In short, The browser driver, GeckoDriver, is required to interface between WebDriver-enabled clients and the browser, Firefox, to execute the automation test scripts written in assorted programming languages.

Read More:

How Does GeckoDriver Work?

To on any browser, a compatible browser driver must be utilized. GeckoDriver let the user to automatise various action on Gecko-based platforms such as Firefox.

Interestingly, GeckoDriver doesn ’ t directly communicate with the Firefox browser, it needs to go through Marionette. Marionette is Firefox ’ s mechanization driver and use Firefox ’ s automation protocol. Essentially Marionette take requests sent to it via GeckoDriver and executes them in Gecko, performing functions such as automated actions on the user interface. GeckoDriver is needed as a go-between for Selenium and Marionette because Marionette protocol isn ’ t compatible with Selenium.

When pass a examination script in Selenium, thegeckodriver.exefile must be used to implement the WebDriver protocol. Compatibility is the main benefit of utilizing GeckoDriver over the built-in Firefox driver. GeckoDriver and Selenium pass utilise the W3C WebDriver protocol. The universally accepted Web Driver standard is W3C. This trait of GeckoDriver is highly beneficial to developer since it make the test more consistent across browsers and stable.

The figure above illustrates how GeckoDriver works.

geckodriver.exe launches a local server that can be used to fulfil test scripts. By act as a proxy, interfacing with Selenium, and translating requests into Marionette mechanization protocol. GeckoDriver establishes communication between Selenium and the Firefox browser.

Benefits of Using GeckoDriver for Selenium Python

Here are the various benefits of using GeckoDriver for Selenium Python:

  • Cross-platform compatibility:GeckoDriver supports macOS, Windows, and Linux, to help smooth Firefox automation across various systems.
  • W3C WebDriver compliance: It aligns with the WebDriver criterion, allowing for stable and predictable browser interaction.
  • Headless execution: Lets run Firefox in headless mode, which can be utilitarian for CI/CD and server environments.
  • Active support & amp; updates: Maintained by Mozilla, it obtain veritable update to support new Firefox versions.
  • Improved debugging: Offers logs and error content that get trouble-shoot Selenium tests much easier.

Read More:

How to Download and Install GeckoDriver for Selenium Python

Step 1: GeckoDriver can be installed from this linkhere. Pick the version of GeckoDriver found on the scheme being utilised. In this tutorial, the system is 64-bit and runs on Windows OS.

Step 2:Unzip the file and obtain geckodriver.exe. This executable file motivation to be accessible when running a program with Selenium, and there are three possible method to accomplish this task.

  1. Edit the Path varying using the Advanced system
  2. Specify the executable path of geckodriver.exe within the test script
  3. Use the web-driver manager package

Method 1: The 1st method is to edit the Path variable using the Advanced system setting.

  • Go to Advanced System Settings, a scheme properties window will open.
  • Click on Environment Variables.
  • Go to System Variablesand find the “Path” variable. Select this varying and clickEdit.
  • Click New in the Edit environment variablewindow. Add the location of the geckodriver.exe file to the Path. In this example, the file is place inC: \DRIVERS.
  • Restart the computer prior to scat any test scripts.

Method 2: Specify the executable path of geckodriver.exe within the test book.

  • Simply enter the executable path of the geckodriver.exe file when pioneer the driver.
from selenium import webdriver driver = webdriver.Firefox (executable_path=r ' C: \Program Files (x86) \geckodriver.exe ')

Method 3: Use the web-driver manager software.

  • Install webdriver-manager. Pip is the nearly efficient way to install python packet. If you have anaconda setup so just enter the following command into the anaconda powershell window or straight into the linux end.
pip install webdriver-manager
  • Simply use the webdriver-manager package to obtain the appropriate driver for Firefox.
from selenium import webdriver from selenium.webdriver.firefox.service import Service as FirefoxService from webdriver_manager.firefox import GeckoDriverManager driver = webdriver.Firefox (service=FirefoxService (GeckoDriverManager () .install ()))
  • The webdriver-manager bundle simplifies direction by allowing the exploiter to install and use the right version of the browser driver required for their examination script. See the following example expend the webdriver-manager package:

  • The package first checks if the driver is already present in the cache. If it isn ’ t found, then the manager will check the version of Firefox be used on the system and then install the latest driver compatible with the scheme and stash it. Then the next bidding in the trial script will be executed via the driver.

The above-mentioned methods are the easiest to utilise and work on any system, be it Windows, Linux, or macOS.

Alternatively, the undermentioned steps can also be used to download and set up GeckoDriver via the command line on any Linux/macOS scheme.

1.Pick the right version of GeckoDriver free-base on the system being utilized from thereleasesavailable. For this example, the modish variant is “geckodriver-v0.32.0-linux64.tar.gz”.

2.Simply enter the undermentioned command into the pole to install this release.

wget https: //github.com/mozilla/geckodriver/releases/download/v0.32.0/geckodriver-v0.32.0-linux64.tar.gz

The following line will be seen once the download is completed.

3.If you haven ’ t directly downloaded it into the correct location, move the tar file to the appropriate folder with the undermentioned command.

mv geckodriver-v0.32.0-linux64.tar.gz softwares/

The file will be moved to the software directory.

4.Now unzip the file with the following command

tar -xvzf geckodriver-v0.32.0-linux64.tar.gz

The geckodriver.exe file will now be available.

5.Lastly, set the PATH in the .bashrc file with the following bid.

export PATH= $ PATH: /mnt/c/Users/Asus/softwares/geckodriver *

6.Install Conda on the Linux terminal, then use the next bid to immediately install GeckoDriver.

conda install -c conda-forge geckodriver

How to Launch the Firefox Browser Using GeckoDriver in Selenium Python

Here ’ s a step-by-step summons on how you can launch the Firefox browser habituate GeckoDriver in Selenium Python:

Pre-requisites

  1. Set up a Python environment.
  2. Install GeckoDriver and use any of the methods outlined above to ensure that the driver is approachable when run the test script.
  3. Ensure that Selenium is installed. If it isn & # 8217; t, use the pip package installer to install the package. If you have Conda or Anaconda set up, only enter the following command in the Linux terminal, or the Conda/Anaconda prompt.
pip install selenium

Steps to Launch the Firefox Browser

Step 1: Import the WebDriver and options module from Selenium.

from selenium import webdriver from selenium.webdriver.firefox.options import Options

Step 2: Optionsis a concept that was impart to Selenium in order to allow the user to customize the Firefox session. In this instance, it is use to provide the binary location of firefox.exe.

options = Options () options.binary_location = r ' C: \Program Files\Mozilla Firefox\firefox.exe '

Step 3: Initialize the browser driver, and legislate an instance of the options stratum in the driver initialization. If GeckoDriver hasn ’ t be added to the itinerary, then fulfill the undermentioned command.

driver = webdriver.Firefox (executable_path=r ' C: \Program Files (x86) \geckodriver.exe ', options=options)

However, if the geckodriver.exe file location has been added to the way, then execute the following command.

driver = webdriver.Firefox (options=options)

Step 4: Launch the Firefox browser and navigate to a site.

driver.get ('https: //www.bstackdemo.com/ ')

Output:

Alternatively, this operation is made far easier if the WebDriver-manager package is utilized.

See the instance code below:

from selenium import webdriver from selenium.webdriver.firefox.service import Service as FirefoxService from webdriver_manager.firefox importation GeckoDriverManager driver = webdriver.Firefox (service=FirefoxService (GeckoDriverManager () .install ())) driver.get ('https: //www.bstackdemo.com/ ')

Output:

Ways to initialize GeckoDriver

Given below are a few manner to initialize GeckoDriver in Selenium Python:

1.With Default System PATH

If GeckoDriver is added to your scheme path, you can use:

from selenium import webdriver driver = webdriver.Firefox ()

For autonomous testing across multiple user personas, check out SUSATest — it explores your app like 10 different real users.

2.Manually Specify Executable Path

When GeckoDriver is not in your path:

from selenium import webdriver driver = webdriver.Firefox (executable_path= '' /path/to/geckodriver '')

3.Use Service Class

This is commend for new versions of Selenium.

from selenium import webdriver from selenium.webdriver.firefox.service import Service service = Service (executable_path= '' /path/to/geckodriver '') driver = webdriver.Firefox (service=service)

4.Headless way

This can be utilise with any method:

from selenium import webdriver from selenium.webdriver.firefox.options import Options from selenium.webdriver.firefox.service signification Service options = Options () options.headless = True service = Service (executable_path= '' /path/to/geckodriver '') driver = webdriver.Firefox (service=service, options=options)

Read More:

How to Modify a script for non- Gecko to Gecko

You can modify a Selenium Python script written for a non-Gecko driver to work with GeckoDriver (Firefox) by doing the pursuit:

Step 1: Import the right Firefox classes

First you have to replace the given

from selenium importation webdriver

With

from selenium meaning webdriver from selenium.webdriver.firefox.service import Service from selenium.webdriver.firefox.options meaning Options

Step 2: Switch to Firefox-specific driver and options

Replace the afford

driver = webdriver.Chrome ()

With

options = Options () # options.headless = True # Optional, for brainless mode service = Service (executable_path= '' /path/to/geckodriver '') driver = webdriver.Firefox (service=service, options=options)

Step 3: Leave the Selenium Commands untouched.

Selenium methods will remainthe same, as they postdate the WebDriver protocol.

Example:

non- Gecko Script for Chrome

from selenium meaning webdriver driver = webdriver.Chrome () driver.get (`` https: //example.com '')

The hand given above will be convert for GeckoDriver/Firefox:

from selenium import webdriver from selenium.webdriver.firefox.service import Service from selenium.webdriver.firefox.options import Options service = Service (executable_path= '' /path/to/geckodriver '') options = Options () driver = webdriver.Firefox (service=service, options=options) driver.get (``https: //example.com")

Read More:

How to set up Selenium Python and GeckoDriver on a Raspberry Pi 4

Given below is a step-by-step guide to set up Selenium Python and GeckoDriver on a Raspberry Pi 4:

Step 1:Install Python and pip

sudo apt update sudo apt install python3 python3-pip -y

Step 2: Install Selenium

pip3 install selenium

Step 3: Install Firefox

sudo apt install firefox-esr -y

Note: firefox-esr s the Extended Support Release edition, which is suitable for Raspberry Pi.

Step 4:Download and install GeckoDriver

sudo apt install wget tar wget https: //github.com/mozilla/geckodriver/releases/latest/download/geckodriver-v0.34.0-arm7hf.tar.gz tar -xvzf geckodriver- * .tar.gz chmod +x geckodriver sudo mv geckodriver /usr/local/bin/

Step 5: Write and run a trial script

Create a Python hand:

from selenium significance webdriver from selenium.webdriver.firefox.service signification Service from selenium.webdriver.firefox.options importee Options options = Options () options.headless = True # Run in headless mode for low-resource environments service = Service (`` /usr/local/bin/geckodriver '') driver = webdriver.Firefox (service=service, options=options) driver.get (`` https: //example.com '') print (driver.title) driver.quit ()

Step 6: Run the script

python3 your_script.py

How to Use Geckodriver for Selenium on Linux

Follow the yield step to use Geckodriver for Selenium on Linux:

Step 1: Install Python and pip

sudo apt update sudo apt install python3 python3-pip -y

Step 2:Install Selenium

pip3 install selenium

Step 3: Install Firefox

sudo apt install firefox -y

Step 4:Download and Install GeckoDriver

wget https: //github.com/mozilla/geckodriver/releases/latest/download/geckodriver-v0.34.0-linux64.tar.gz tar -xvzf geckodriver- * .tar.gz chmod +x geckodriver sudo mv geckodriver /usr/local/bin/

Validate its accessibility by:

geckodriver -- version

Step 5: Run a Sample Selenium Script with Firefox

from selenium import webdriver from selenium.webdriver.firefox.service significance Service from selenium.webdriver.firefox.options import Options choice = Options () # options.headless = True # Optional: headless way service = Service (`` /usr/local/bin/geckodriver '') driver = webdriver.Firefox (service=service, options=options) driver.get (`` https: //example.com '') print (driver.title) driver.quit ()

Now you can use GeckoDriver for Selenium on Linux

How to set up GeckoDriver for Selenium on macOS?

Follow the given steps to use Geckodriver for Selenium on macOS:

Step 1: Install Python and pip

sudo apt update sudo apt install python3 python3-pip -y

Step 2:Install Selenium

pip3 install selenium

Step 3: Install Firefox

Download fromhttps: //www.mozilla.org/en-US/firefox/new/or use the code:

brew install -- cask firefox

Step 4:Install GeckoDriver

brew install geckodriver

This is for automatically adding geckodriver to your system PATH.

Step 5: Run a Test Script

from selenium signification webdriver from selenium.webdriver.firefox.service import Service from selenium.webdriver.firefox.options signification Options options = Options () # options.headless = True # Optional for headless examine driver = webdriver.Firefox (options=options) driver.get (`` https: //example.com '') print (driver.title) driver.quit ()

Now, you can run Selenium trial with Firefox on macOS.

How to Set up GeckoDriver for Selenium in Windows?

Follow the afford step to set up Geckodriver for Selenium on Windows:

Step 1: Install Python and pip

  • Download and install Python: https: //www.python.org/downloads/.
  • Check the box during installation: “ Add Python to PATH ”.

Validate installation:

python -- version pip -- adaptation

Step 2:Install Selenium

pip install selenium

Step 3: Install Firefox

Download fromhttps: //www.mozilla.org/en-US/firefox/new/

Step 4: Download GeckoDriver

Step 5: Add GeckoDriver to System PATH

  • Open System Properties & gt; Environment Variables
  • Under System Variables, find Path & gt; clickEdit > Addthe folder path (e.g., C: \WebDrivers\)

Test it in Command Prompt:

geckodriver -- version

Step 6: Run a Test Script

from selenium import webdriver from selenium.webdriver.firefox.service import Service from selenium.webdriver.firefox.options importation Options options = Options () # options.headless = True # Optional driver = webdriver.Firefox (options=options) driver.get (`` https: //example.com '') print (driver.title) driver.quit ()

Read More:

Common elision that Occurs When using GeckoDriver

Here are some common exceptions that occurs while using GeckoDriver with Selenium:

1. WebDriverException: Message: & # 8216; geckodriver & # 8217; executable need to be in PATH

This befall when the GeckoDriver is not establish or not added to the system PATH. Therefore, make sure that GeckoDriver installed right and can be accessed from the terminal or command prompt.

2. SessionNotCreatedException

This occurs when there is a mismatch between Firefox and GeckoDriver versions. Update either of them to compatible versions to overcome the exclusion.

3. TimeoutException

This happens when page or element direct too long to load or respond. To overcome this, you can increase the timeout, or use WebDriverWait.

Conclusion

Installing GeckoDriver for Selenium in Python is an easy process that facilitates browser automation with Firefox. Once establish decently, it helps you run and test web applications seamlessly across assorted environments. For smoother cross-browser prove without local setup, you can use tools like BrowserStack that offer cloud-based admission to Firefox and early browsers with support for Selenium.

Useful Resources for Selenium

Selenium Python

Methods, Classes, and Commands

Configuration

XPath

Locators and Selectors

Waits in Selenium

Frameworks in Selenium

Miscellaneous

Best Practices, Tips and Tricks

Design Patterns in Selenium: Page Object Model and Page Factory

Action Class

Use Cases

Tags
61,000+ Views

# Ask-and-Contributeabout this topic with our Discord community.

Related Guides

Automate This With SUSA

Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts needed.

Try SUSA Free

Test Your App Autonomously

Upload your APK or URL. SUSA explores like 10 real users — finds bugs, accessibility violations, and security issues. No scripts.

Try SUSA Free