Selenium 3.7:geckodriver:WebDriverException:org.apache.http.conn.HttpHostConnectException 连接被拒绝

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

最近我升级到 Selenium 3.7。

代码:

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

如有任何想法,我们将不胜感激。谢谢。

尝试 Debanjan 建议后更新:

代码:

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();
  }

包括图书馆:

selenium-server-standalone-3.7.1.jar

系统环境:

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'

错误跟踪日志:

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) at 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

我试过相同的版本没有任何问题。

如果 geckodriver 的路径:

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

是正确的,确保 geckodriver 对执行代码的用户是可执行的:

chmod +x geckodriver

我认为您缺少 .exe 扩展名。你的路径应该是这样的

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

错误 WebDriverException: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8970 可能由于不同的原因而发生。 此外,您的 Included Library 列表中存在差异,因为 selenium-server-standalone-3.7.1.jar 从来不是已下载 selenium-java-3.7.1.zip[=48= 的一部分].

尝试下面提到的步骤:

  • Included Library 列表中删除所有 jars
  • DownloadAdd 只有 selenium-server-standalone-3.7.1.jar 来自 this link or from this link
  • 确保系统上的 /etc/hosts 包含以下条目:

    1 127.0.0.1               localhost.localdomain localhost
    
  • 运行 CCleaner 用于清除系统中所有 OS 琐事的工具。

  • 您可以选择 System Reboot
  • 执行你的Test.

经过一些研究,我设法解决了这个问题。

错误是由于 127.0.0.1 映射到 etc/hosts 中的 localhost.com。 编辑: 127.0.0.1 本地主机