Selenium Firefox 3 Support: What Browser Versions Will Work?
Selenium 3’s Firefox compatibility depends on geckodriver. Learn how to check the exact versions—and whether you mean Selenium 3 or Firefox 3.
Direct answer: If “Firefox 3” means Selenium 3, Firefox compatibility depends on the exact geckodriver release and Selenium binding. Mozilla says Selenium users need version 3.11 or later to use geckodriver; check Mozilla’s maintained compatibility table for the Firefox range associated with your driver. If you mean the historical Firefox 3 browser, it is not listed in that current table, so there is no current supported Selenium 3 pairing to cite for it.
The practical check is to record three versions—your Selenium binding, Firefox, and geckodriver—and compare that combination with the driver’s published row. A Selenium major version by itself does not establish a universal Firefox range.
1. First, clarify what “Firefox 3” means
The title can refer to two different version numbers:
- Selenium 3 with Firefox: a Selenium automation library from the Selenium 3 release line controlling a Firefox browser. This is the likely meaning of the question.
- Firefox browser version 3: a very old Firefox release. Mozilla’s current geckodriver support table does not list it as supported.
These cases have different answers. This guide focuses on Selenium 3 with Firefox, while covering the literal Firefox 3 interpretation below.
2. Which Firefox versions work with Selenium 3?
There is no single “Selenium 3 supports Firefox X through Y” range that applies to every setup. Selenium 3 uses geckodriver for modern Firefox automation, and the compatible browser range depends on the geckodriver release. Mozilla’s table also includes Selenium and binding requirements. Check the row for the exact geckodriver version you plan to run.
| geckodriver release | Firefox range in Mozilla’s table | How to read it |
|---|---|---|
| 0.30.0 | Firefox 78 ESR through 90 | The published row gives both a lower and upper endpoint. |
| 0.33.0 | Firefox 102 ESR through 120 | The published row gives both a lower and upper endpoint. |
| 0.37.1 | Firefox 115 ESR minimum; no maximum shown | Mozilla lists a minimum rather than a closed range. Do not infer an unlisted maximum. |
These examples are from Mozilla’s geckodriver supported platforms table. The table changes as driver releases and supported browser versions change, so use it as the source of truth for a new setup. Recent rows may specify only a minimum Firefox version; older rows can name both endpoints.
Mozilla’s current guidance says Selenium users need Selenium 3.11 or later to use geckodriver. The same table notes a Python binding requirement of 3.14 for the current listed drivers. Check the binding-specific requirement for the row you select; don’t assume the minimum is identical for every language.
3. Does Selenium 3 support Firefox 3?
If you mean the Firefox 3 browser, Mozilla’s current geckodriver compatibility table does not include it. The current table therefore provides no supported version pairing for Firefox 3.
There is a relevant historical transition, but it does not establish compatibility with Firefox 3. Mozilla says the legacy FirefoxDriver had to be discontinued with Firefox 47 because it could not support Firefox’s newer multiprocess architecture. Geckodriver implements the W3C WebDriver protocol; moving from older FirefoxDriver behavior to geckodriver can introduce migration differences. Selenium 3 enabled geckodriver as Firefox’s default WebDriver implementation.
In the 2016 Selenium 3 announcement, Selenium project author Simon Stewart said that from Firefox 48, geckodriver was required to use that browser with Selenium 2 or 3. That is a historical statement about the transition, not a current compatibility matrix and not evidence that Firefox 3 works with a current driver.
4. Check your Selenium, Firefox, and geckodriver versions
- Identify the Selenium binding and version. For Python, inspect the installed Selenium package; for other languages, use the package manager or dependency lockfile.
- Identify the Firefox version. Read it from Firefox’s About page or the version output available in your environment.
- Identify the geckodriver version. Run
geckodriver --versionif it is on your PATH. - Open Mozilla’s support table. Find the exact geckodriver release and compare its Firefox range and Selenium/binding minimums with your environment.
- Check migration requirements. If you previously used the legacy FirefoxDriver, account for the switch to the W3C WebDriver protocol and possible behavior differences.
For example, if a project has geckodriver 0.33.0, compare its Firefox version with the documented Firefox 102 ESR through 120 range. If it has 0.37.1, Mozilla lists Firefox 115 ESR as the minimum and shows no upper maximum. The Selenium version still needs to meet the requirement in that row.
5. Minimal Selenium 3 Python example
This example uses Selenium 3.11 or later, satisfying Mozilla’s stated Selenium minimum for geckodriver. Install a geckodriver release compatible with the Firefox version in your environment, then make sure the driver executable is available on PATH.
from selenium import webdriver
# geckodriver must be installed and available on PATH.
driver = webdriver.Firefox()
try:
driver.get("https://example.com")
print(driver.title)
finally:
driver.quit()
Install the Selenium Python binding in the project environment with your normal package manager, and pin versions in the project’s dependency file when reproducibility matters. Mozilla’s usage guide documents geckodriver setup and Firefox configuration: geckodriver usage.
6. When you need to check a current project
For a project already using Selenium 3, the compatibility decision is a small version audit, not a guess based on the Selenium major number:
- Record the exact binding and Selenium version.
- Record Firefox’s version, including whether it is an ESR release.
- Record the geckodriver release.
- Compare all three against Mozilla’s support table and the binding-specific minimum.
- If any version is outside the published range, select a driver/browser pairing shown in the table or upgrade the project deliberately and rerun its browser tests.
For new projects, consult the Selenium Firefox documentation. Selenium’s current Firefox page says Selenium 4 requires Firefox 78 or greater and recommends the latest geckodriver. Keep that Selenium 4 guidance separate from the Selenium 3 requirement: the Firefox 78 statement is not a general Selenium 3 cutoff.
7. Compatibility caveats
A row in the geckodriver table is a version-compatibility guide, not a promise that every WebDriver feature behaves identically across all browser releases. Mozilla notes that geckodriver is not fully feature-complete and may not provide complete Selenium compatibility.
Older setups can also behave differently when moving from FirefoxDriver to geckodriver because geckodriver uses the W3C WebDriver protocol, while older drivers used the Selenium wire protocol. If a test starts failing after a driver change, distinguish a version mismatch from a protocol or behavior change before changing application code.
8. Troubleshooting common version problems
| Symptom | Likely cause | What to do |
|---|---|---|
| Firefox starts, but the session fails during startup | The Firefox and geckodriver versions do not match a supported table row, or the Selenium binding is below that row’s minimum. | Record all three versions and compare them with Mozilla’s support table. Upgrade or select a documented compatible pairing. |
| The driver cannot be found or launched | geckodriver is not installed, is not executable, or is not on PATH. | Install the driver for the operating system, check its executable permissions, and verify that geckodriver --version runs from the same environment as the test. |
| An old FirefoxDriver setup stopped working | The legacy driver path is not the modern Firefox automation path; Firefox’s architecture transition led to geckodriver. | Move to geckodriver and account for W3C WebDriver migration differences. Use Mozilla’s usage guide for configuration. |
| A Selenium 3 setup fails with geckodriver despite apparently matching Firefox | Selenium may be older than 3.11, or the language binding may have its own minimum. | Check the Selenium and binding requirements in Mozilla’s row; Selenium users need 3.11 or later for geckodriver. |
| A setup works on one machine but not another | The machines may use different Firefox, driver, binding, or PATH-resolved executable versions. | Print or log the versions in each environment, pin project dependencies, and provision the same documented driver/browser pairing. |
9. Performance, reliability, and maintenance
Compatibility is a prerequisite for reliable tests: an unsupported pairing can fail before a page is tested or produce behavior that differs between machines. Keep the browser, driver, binding, and Selenium versions visible in build logs so a version drift is diagnosable.
When updating geckodriver or Firefox, use Mozilla’s table to choose a documented pairing and run the project’s browser suite against it. The table does not give performance benchmarks or guarantee complete feature support, so treat upgrade validation as part of maintaining the test environment rather than assuming that a matching row covers every test behavior.
For Selenium 4 projects, Selenium’s Firefox documentation gives a separate baseline: Firefox 78 or greater. Do not apply that rule retroactively to Selenium 3; consult the relevant geckodriver row and Selenium 3 binding requirement instead.
10. Or skip the browser setup
If you need a page image rather than browser-driven interaction, ScreenshotNeo provides a website screenshot API and MCP server. One GET request returns a PNG, JPEG, WebP, or PDF; see the API documentation.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
Cookie banners are accepted and removed before capture, along with known newsletter popups and chat widgets. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed; response headers report the page verdict and billing status. Its MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf. The free plan includes 1,000 screenshots each month with no card; paid plans start at $5 for 3,000 screenshots.
Create a free ScreenshotNeo account for 1,000 screenshots a month with no card.
11. Frequently asked questions
Does Selenium 3.11 work with every Firefox version supported by geckodriver?
Not automatically. Selenium 3.11 is Mozilla’s minimum for using geckodriver, but the Firefox range and any binding-specific minimum depend on the driver release.
Is Firefox 115 the maximum version for geckodriver 0.37.1?
No. Mozilla lists Firefox 115 ESR as the minimum for that release and shows no maximum in the current table.
Does a compatible version row guarantee every WebDriver feature works?
No. Mozilla cautions that geckodriver is not fully feature-complete and may not have complete Selenium compatibility.
What Firefox version does Selenium 4 require?
Selenium’s Firefox documentation says Firefox 78 or greater. That guidance applies to Selenium 4 and should not be used as the Selenium 3 compatibility rule.


