简体   繁体   中英

Selenium 3.7 : geckodriver : WebDriverException: org.apache.http.conn.HttpHostConnectException Connection Refused

Recently I upgraded to Selenium 3.7.

Code:

import org.openqa.selenium.WebDriver;  
import org.openqa.selenium.firefox.FirefoxDriver;


public static void main (String args[]){

    System.setProperty("webdriver.gecko.driver", 
    "/usr/local/bin/geckodriver");      
    WebDriver driver = new FirefoxDriver();
    driver.get("http://www.google.com");
    driver.quit();
  }

Included Library:

selenium-java-3.7.1/selenium-server-standalone-3.7.1.jar

selenium-java-3.7.1/libs/httpcore-4.4.6.jar

selenium-java-3.7.1/libs/httpclient-4.5.3.jar

selenium-java-3.7.1/libs/guava-23.0.jar

selenium-java-3.7.1/libs/gson-2.8.2.jar

selenium-java-3.7.1/libs/commons-logging-1.2.jar

selenium-java-3.7.1/libs/commons-exec-1.3.jar

selenium-java-3.7.1/libs/commons-codec-1.10.jar

selenium-java-3.7.1/libs/byte-buddy-1.7.5.jar

selenium-java-3.7.1/client-combined-3.7.1.jar

selenium-java-3.7.1/client-combined-3.7.1-sources.jar

System environment:

Firefox 56.0.2

Java 1.8

selenium-java-3.7.1

selenium-server-standalone-3.7.1

geckodriver - v0.19.1

Error trace log:

Usage:

/usr/local/bin/geckodriver [OPTIONS] /usr/local/bin/geckodriver: Unknown option --port=8970 Exception in thread "main" org.openqa.selenium.WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8970 [localhost/0:0:0:0:0:0:0:1, localhost/fe80:0:0:0:0:0:0:1%1] failed: Connection refused (Connection refused) Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z' System info: host: 'Maggies-MacBook-Pro-2.local', ip: '192.168.1.6', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_121' Driver info: driver.version: FirefoxDriver

Any idea would be appreciated. Thank you.

Update after trying Debanjan suggestion:

Code:

public static void main (String args[]){
    System.out.println("Debug 1");
    System.setProperty("webdriver.gecko.driver", 
    "/Users/maggie/Documents/ToolsQA/Libs/geckodriver");    
    System.out.println("Debug 2");
    WebDriver driver = new FirefoxDriver();
    System.out.println("Debug 3");
    driver.get("http://www.google.com");
    driver.quit();
  }

Include Library:

selenium-server-standalone-3.7.1.jar

System Environment:

Firefox 56.0.2

Java 1.8

selenium-java-3.7.1

selenium-server-standalone-3.7.1

geckodriver 0.19.1

Mac OS X', os.arch: 'x86_64', os.version: '10.12.6'

Error trace log:

Debug 1 Debug 2 Starting ChromeDriver 2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2) on port 2198 Only local connections are allowed. Exception in thread "main" org.openqa.selenium.WebDriverException: Timed out waiting for driver server to start. Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z' System info: host: 'Maggies-MacBook-Pro-2.local', ip: '192.168.1.6', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_121' Driver info: driver.version: ChromeDriver at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:192) at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:600) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219) at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:142) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:181) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:168) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:123) a t AutomationFrameWork.FirstTestCase.main(FirstTestCase.java:13) Caused by: org.openqa.selenium.net.UrlChecker$TimeoutException: Timed out waiting for [ http://localhost:2198/status] to be available after 20005 ms at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100) at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187) ... 9 more Caused by: java.util.concurrent.TimeoutException at java.util.concurrent.FutureTask.get(FutureTask.java:205) at com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:147) at org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75) ... 10 more

The error WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8970 can occur due to different reasons. More over there is a discrepency in your Included Library list as selenium-server-standalone-3.7.1.jar is never a part of downloaded selenium-java-3.7.1.zip .

Try out the steps mentioned below:

  • From the Included Library list remove all the jars .
  • Download and Add only selenium-server-standalone-3.7.1.jar from this link or from this link
  • Ensure that /etc/hosts on your system contains the following entry :

     1 127.0.0.1 localhost.localdomain localhost 
  • Run CCleaner Tool to wipe away all the OS chores from your system.

  • You can opt for a System Reboot .
  • Execute your Test .

I tried with the same versions without any problem.

If the path to the geckodriver:

System.setProperty("webdriver.gecko.driver", 
    "/usr/local/bin/geckodriver"); 

is correct, make sure that the geckodriver is executable for the user that execute the code:

chmod +x geckodriver

After doing some research, I manage to resolve this problem.

The error is due to the 127.0.0.1 map to localhost.com in etc/hosts. Edited: 127.0.0.1 localhost

I think you are missing the .exe extension. Your path should be like this

System.setProperty("webdriver.gecko.driver", 
    "/usr/local/bin/geckodriver.exe");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM