For Java:

Putting GeckoDriver in a folder that is not in your system's PATH environment variable and not specifying the path. If you just write new FirefoxDriver() without a Service object, Selenium will look in PATH and fail if it's not there. Cause 3: Port Conflict or Firewall Blocking The error mentions http://localhost . This is a real network address (127.0.0.1). If something else is using the port range GeckoDriver wants, or if your firewall/antivirus is blocking geckodriver.exe , the service cannot start. Diagnosing Port Conflicts By default, GeckoDriver picks a random free port between 10000 and 60000. If that specific port is locked by another application (like Docker, a local web server, or another WebDriver instance), the bind fails.

firefox --version If this fails, Firefox cannot be found in your PATH .