pkill -f geckodriver
taskkill /F /IM geckodriver.exe
Introduction If you are automating Firefox using Selenium WebDriver in C# (or any .NET language), you have likely encountered the dreaded WebDriverException : "Cannot start the driver service on http://localhost..." This error stops your automation dead in its tracks. It means Selenium cannot communicate with the geckodriver (the bridge between your code and Firefox). pkill -f geckodriver taskkill /F /IM geckodriver
service = FirefoxDriverService.CreateDefaultService(); service.LogPath = "geckodriver.log"; service.LogLevel = FirefoxDriverLogLevel.Trace; var driver = new FirefoxDriver(service); Check geckodriver.log – it will show port binding failures, binary issues, or profile problems. using OpenQA.Selenium.Firefox; class Program
foreach (var process in Process.GetProcessesByName("geckodriver")) process.Kill(); Force a specific, free port to avoid conflicts. using OpenQA
var service = FirefoxDriverService.CreateDefaultService(@"C:\path\to\geckodriver"); service.Port = 12345; // Use any free port above 1024 var driver = new FirefoxDriver(service); | Firefox Version | GeckoDriver Version | |----------------|---------------------| | 115+ (ESR) | 0.33+ | | 120+ | 0.34+ | | 130+ | 0.35+ |
GitHub mozilla/geckodriver 4. Add Driver Path to System PATH (or specify explicitly) Option A – Add to PATH: Place geckodriver.exe in a folder already on PATH, or add its folder to system environment variables. FirefoxDriverService service = FirefoxDriverService
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"D:\drivers"); service.FirefoxBinaryPath = @"C:\Program Files\Mozilla Firefox\firefox.exe"; var driver = new FirefoxDriver(service); Sometimes a corrupted Firefox profile causes the driver to hang on startup.
static void Main()
var driver = new FirefoxDriver(options); // will search PATH driver.Navigate().GoToUrl("https://example.com"); Console.WriteLine(driver.Title); driver.Quit();
Below, I break down exactly why this happens and the 7 most effective fixes. OpenQA.Selenium.WebDriverException: Cannot start the driver service on http://localhost:xxxx/ ---> System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted. Root Cause Analysis The error indicates a port conflict or driver process failure . The geckodriver tries to bind to a port on localhost , but something is blocking it.