首页 > 解决方案 > org.openqa.selenium.WebDriverException: java.net.ConnectException: 无法使用 GeckoDriver Firefox 和 Selenium 连接到 localhost/0:0:0:0:0:0:0

问题描述

import org.openqa.selenium.firefox.FirefoxDriver;

public class OpenBrowser {

    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        System.setProperty("webdriver.gecko.driver", "C:\\StudyPooja\\geckodriver.exe");
        System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE, "C:\\StudyPooja\\Mylog.txt");
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.facebook.com/");
        Thread.sleep(5000);
    }
}

我得到的错误是:

线程“主”org.openqa.selenium.WebDriverException 中的异常:java.net.ConnectException:无法连接到 localhost/0:0:0:0:0:0:0:1:14170 构建信息:版本:'3.14 .0',修订:'aacccce0',时间:'2018-08-02T20:05:20.749Z' 系统信息:主机:'D790-18',ip:'192.168.43.66',os.name:'Windows 7 ', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_31' 驱动程序信息: driver.version: FirefoxDriver at org.openqa.selenium.remote.service.DriverCommandExecutor.execute( DriverCommandExecutor.java:92) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:212) at org.openqa.selenium .remote.RemoteWebDriver.(RemoteWebDriver.java:130) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:125) 在 org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:103) 在 OpenBrowser.main(OpenBrowser.java:13) 引起通过:java.net.ConnectException:无法在 okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:242) 在 okhttp3 连接到 localhost/0:0:0:0:0:0:0:1:14170 .internal.connection.RealConnection.connect(RealConnection.java:160)242) 在 okhttp3.internal.connection.RealConnection.connect(RealConnection.java:160)242) 在 okhttp3.internal.connection.RealConnection.connect(RealConnection.java:160)

标签: javaseleniumselenium-webdriverfirefoxgeckodriver

解决方案


此错误消息...

Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:14170 
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:05:20.749Z' 
System info: host: 'D790-18', ip: '192.168.43.66', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_31' 
Driver info: driver.version: FirefoxDriver at

...暗示GeckoDriver无法启动/产生新的浏览上下文,即Firefox 浏览器会话。

您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:

  • 您的Selenium 客户端版本是2018-08-02T20 : 05:20.749Z的 3.14.0 ,比它早一年多。
  • 您的JDK 版本是非常古老的1.8.0_31 。
  • 我们不知道您的GeckoDriver版本。
  • 我们不知道您的Firefox版本。

因此JDK v8u31Selenium Client v3.14.0之间存在明显的不匹配。


解决方案

  • 将JDK升级到最新级别JDK 8u222
  • 将Selenium升级到当前级别版本 3.141.59
  • 将GeckoDriver升级到GeckoDriver v0.26.0级别。
  • GeckoDriver 出现在所需位置。
  • GeckoDriver 对非 root 用户具有可执行权限。
  • 将Firefox版本升级到Firefox v70.0级别。
  • 通过IDE清理项目工作区并仅使用所需的依赖项重建项目。
  • 如果您的基本Web 客户端版本太旧,请卸载它并安装最新的 GA 和已发布版本的Web 客户端
  • 重新启动系统
  • Test以非 root 用户身份执行。
  • 始终driver.quit()tearDown(){}方法内调用以优雅地关闭和销毁WebDriverWeb Client实例。

推荐阅读