java - 使用 geckodriver 时遇到 HttpHostConnectException

标签 java eclipse selenium webdriver geckodriver

我刚开始在办公室设置自动化 Selenium 的帮助,但仅达到初始水平。我用了一个 基本代码最初只是为了检查浏览器是否正常工作和处理 代码进一步但遇到了问题。

import java.io.IOException;
import java.net.InetAddress;
import java.util.concurrent.TimeUnit;

import org.apache.http.conn.HttpHostConnectException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.Test;

public class ABC {




public static void main(String[] args) 
{

    System.setProperty("webdriver.gecko.driver","C:\\Users\\12345678\\
    AppData\\Local\\Mozilla Firefox\\firefox.exe");

    DesiredCapabilities dc=DesiredCapabilities.firefox();
    FirefoxProfile profile = new FirefoxProfile();
    dc.setCapability(FirefoxDriver.PROFILE, profile);
    WebDriver driver =  new FirefoxDriver(dc);
    driver.get("http://www.google.com");
    driver.manage().timeouts().implicitlyWait(10L, TimeUnit.SECONDS);

}`


    **Below is the error i am facing**

`

 Exception in thread "main" org.openqa.selenium.WebDriverException: 
    org.apache.http.conn.HttpHostConnectException: Connect to 
    localhost:44853 
    [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection 
    refused: connect
    Build info: version: '3.3.1', revision: '5234b32', time: '2017-03-10 
    09:04:52 -0800'
    System info: host: 'NODHCMSLTP1115', ip: '10.203.124.34', os.name: 
    'Windows 
    7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_92'
    Driver info: driver.version: FirefoxDriver at 

 org.openqa.selenium.remote.service.DriverCommandExecutor.execute(Driver
 CommandExecutor.java:91) at 




    org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.
     java:604)at 

  org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver
 .java:244)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>
    (RemoteWebDriver.java:131)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>
   (FirefoxDriver.java:218)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>
   (FirefoxDriver.java:125)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>
   (FirefoxDriver.java:150)
    at seleniumProjectauto.Rks_Asu.main(Rks_Asu.java:27)
    Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 
    localhost:44853 [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:158)
    at 
    org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect
    (PoolingHttpClientConnectionManager.java:353)
    at 
    org.apache.http.impl.execchain.MainClientExec.establishRoute
    (MainClientExec.java:380)
    at         
    org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.
    java:236)
    at 

   org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:
    184)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
    at 
    org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:
    110)
    at 
   org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttp
    Client
   .java:184)
    at 
    org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttp
    Client.java:71)
    at 
    org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttp
    Client.java:55)
    at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute
    (ApacheHttpClient.java:142)
    at   
    org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttp
    Client.java:88)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(Protocol
    Handshake.java:296)
    at 
    org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHand
    shake.java:113)
    at 
    org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommand
    Executor.java:141)

at 

org.openqa.selenium.remote.service.DriverCommandExecutor.execute
(DriverCommandExecutor.java:82)
... 7 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at 
java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl
.java:85)
at 
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl
.java:350) at 
 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocket
Impl.java:206)
at 
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.
java:188)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at 
org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket
(PlainConnectionSocketFactory.java:74)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect
(DefaultHttpClientConnectionOperator.java:141)
... 22 more`

最佳答案

您的代码看起来不错,但有几点:

  1. 要使用 Selenium 3.x 和 Mozila Firefox 52.x,您需要从 this location 下载最新的 gecko 驱动程序并保存。

  2. 您需要提供“geckodriver.exe”的绝对路径,而不是“firefox.exe”

替换:

System.setProperty("webdriver.gecko.driver","C:\\Users\\12345678\\
    AppData\\Local\\Mozilla Firefox\\firefox.exe");

通过:

System.setProperty("webdriver.gecko.driver","C:\\your_directory\\geckodriver.exe");
  1. 最终您的代码将如下所示:

    System.setProperty("webdriver.gecko.driver", "C:\\SeleniumUtilities\\BrowserDrivers\\geckodriver.exe");
    DesiredCapabilities dc = DesiredCapabilities.firefox();
    FirefoxProfile profile = new FirefoxProfile();
    dc.setCapability(FirefoxDriver.PROFILE, profile);
    WebDriver driver =  new FirefoxDriver(dc);
    driver.manage().window().maximize();
    driver.get("http:\\gmail.com");
    

这段代码对我来说执行得很好。

如果这对您有帮助,请告诉我。

关于java - 使用 geckodriver 时遇到 HttpHostConnectException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43451877/

相关文章:

selenium - RSpec/Capybara/JS 测试单独通过,但一起运行时失败

selenium - NoSuchElementException,Selenium 无法定位元素

java - Java中的时间测量开销

java - 我可以通过以相反顺序写入 AMR 数据字节来反向播放音频吗?

当内存实际上可用时出现 Java 内存不足错误

android - Eclipse 错误 "ADB server didn' t ACK,无法启动守护进程”

eclipse - 无法运行 Eclipse; JVM 终止。退出代码=13

java - 带tomcat的eclipse——eclipse修改server.xml

selenium - 哪个 ChromeDriver 版本与哪个 Chrome 浏览器版本兼容?

java - 我是否应该在 Android 应用程序上将缓冲读取更改为内存中/标记化以读取 100,000 行文件?