Java Selenium Webdriver Connection Refused

60,650

Our security dept introduced a policy which blocked access to the execution of the geckodriver.exe. This was identified by attempting to run from cmd. Not sure why I didn't get the meaningful error in the IDE (blocked by group policy) for gecko, I did get this error for chrome and IE. In order to use the driver it needed to be saved in Program files though this may be specific to my situation. If you get this error for Geckodriver i would suggest trying to execute it from cmd to see if there is a policy issue.

Share:
60,650
bowja
Author by

bowja

Updated on August 02, 2020

Comments

  • bowja
    bowja over 3 years

    I am getting the all too common connection refused error on my selenium webdriver. The same code was executing a few weeks ago.

    I have been reading in circles through existing posts and have tried updating geckodriver and FireFox to no avail. I can run the same code on another computer running the same versions of the driver, browser and libraries etc. How can I find the cause specific to this machine? the error is below.

    Debug 1 Debug 2 Debug 3

    Exception in thread "main" org.openqa.selenium.WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:28379 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: host: 'LT9LTDRC2', ip: '10.130.3.15', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131' Driver info: driver.version: Gecko_Driver  
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:91)  
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637)     
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250)    
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236)    
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:137)  
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:191)     at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:108)     at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:137)     at seleniumPrograms.Gecko_Driver.main(Gecko_Driver.java:13) 
    Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:28379 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect   
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159)  
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359)    
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)    
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)   at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)   at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)  
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)   at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)    
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)     
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)     
    at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:139)  
    at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:87)   
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:343)   
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:159)   
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)     
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)  ... 8 more 
    Caused by: java.net.ConnectException: Connection refused: connect   
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)  
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
        at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)   
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)    
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)     
    at java.net.PlainSocketImpl.connect(Unknown Source)     
    at java.net.SocksSocketImpl.connect(Unknown Source)     
    at java.net.Socket.connect(Unknown Source)  
    at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:75)     
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)  ... 23 more
    

    And I get this running even the following basic code.

    enter code here
    package seleniumPrograms;
        import org.openqa.selenium.WebDriver;
        import org.openqa.selenium.firefox.FirefoxDriver;
        import org.openqa.selenium.remote.DesiredCapabilities;
    
        public class Gecko_Driver {
            public static void main(String[] args)  {
                 System.out.println("Debug 1");
                 DesiredCapabilities capabilities=DesiredCapabilities.firefox();
                 System.out.println("Debug 2");
                 capabilities.setCapability("marionette", true);
                 System.out.println("Debug 3");
                 WebDriver driver = new FirefoxDriver(capabilities);
                 System.out.println("Debug 4");
                 driver.get("http://www.google.com");
    
                 driver.manage().window().maximize();  
                 driver.quit();
            }
     }
    

    Example with chrome.

    @Test
            public void testGoogleSearch() throws InterruptedException {
              // Optional, if not specified, WebDriver will search your path for chromedriver.
              System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32\\chromedriver.exe");
    
              WebDriver driver = new ChromeDriver();
              driver.get("http://www.google.com/xhtml");
              Thread.sleep(5000);  // Let the user actually see something!
              WebElement searchBox = driver.findElement(By.name("q"));
              searchBox.sendKeys("ChromeDriver");
              searchBox.submit();
              Thread.sleep(5000);  // Let the user actually see something!
              driver.quit();
            }
    

    Failure trace:

    org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. Build info: version: 'unknown', revision: 'unknown', time: 'unknown' System info: host: 'LT9LTDRC2', ip: '192.168.1.6', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131' Driver info: driver.version: Gecko_Driver at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:193) at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:181) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:637) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:250) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:236) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:137) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:184) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:171) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:124) at seleniumPrograms.Gecko_Driver.testGoogleSearch(Gecko_Driver.java:16) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) at org.junit.runners.ParentRunner.run(ParentRunner.java:363) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [http://localhost:31675/status] to be available after 20002 ms at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:107) at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:190) ... 33 more Caused by: com.google.common.util.concurrent.UncheckedTimeoutException: java.util.concurrent.TimeoutException at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:140) at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:80) ... 34 more Caused by: java.util.concurrent.TimeoutException at java.util.concurrent.FutureTask.get(Unknown Source) at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:128) ... 35 more

  • bowja
    bowja almost 7 years
    Thanks Dev but unfortunately after completing all the suggested steps I still get the same error.
  • bowja
    bowja almost 7 years
    Still no change unfortunately. I have geckodriver set in environment variables so I don't need to have this set there at all.
  • undetected Selenium
    undetected Selenium almost 7 years
    Update your current code & the error stacktrace in the Question area for further analysis please. Thanks
  • bowja
    bowja almost 7 years
    Done. Thanks for your help
  • undetected Selenium
    undetected Selenium almost 7 years
    @JamesBowman Seems gecko's Marionette is not getting hooked, so I think you should consider be very specific about which variant of webdriver you intend to use among geckodriver, chromedriver & ie. So you may consider adding the System.setProperty line as per my updated code block.
  • bowja
    bowja almost 7 years
    Thanks Dev I really appreciate your help however the suggestions have not resolved the issue. As I stated initially I can execute the code on another machine with no issue. The geckodriver is being connected to by both approaches, Environment Variable or by setting the system property. If i remove the line and the variable I get an informative error. I believe it is something on my system as previously I have had success on this pc and now it has started refusing. I will edit and add an attempt with chrome. perhaps the error log will add more info.
  • bowja
    bowja almost 7 years
    Starting to suspect we may have had some group policy changes on our network recently. Trying to execute gecko driver from cmd i get "This program is blocked by group policy. For more information, contact your system administrator."
  • bowja
    bowja almost 7 years
    I have managed to progress from this error (to another). Our security dept did introduce a policy which blocked access to the execution of the geckodriver.exe. This was identified by attempting to run from cmd. Not sure why I didn't get the meaningful error in the IDE (blocked by group policy) for gecko, I did for chrome and IE.
  • Jeevan Adiga
    Jeevan Adiga over 5 years
    Can you provide details on how to execute it from cmd?
  • bowja
    bowja over 5 years