java - 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)
解决方案
此错误消息...
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 v8u31和Selenium 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(){}
方法内调用以优雅地关闭和销毁WebDriver和Web Client实例。
推荐阅读
- javascript - 变形时将圆圈保持在画布范围内 - paper.js
- xml - 如何导出关系表-filemaker xml xslt
- python - 使用 python 创建自己的数字系统
- asp.net-mvc - DataTables 警告:表 id=患者 - 无效的 JSON 响应。有关此错误的更多信息,请参阅 http://datatables.net/tn/1
- java - Jackson - 如何反序列化包含额外包装器的子对象列表
- c# - C#中比较不同时区时间的代码示例
- javascript - 如何从路径构建树
- flutter - 如何在颤动中乘以动态值
- django - 具有现有格式的 Django 查询
- c - 税务计算器加班计算不正确