org.openqa.selenium.WebDriverException:java.net.ConnectException:无法使用GeckoDriver和selenium连接到localhost/0:0:0:0:0:0:1:1941
我试图使用Eclipse编写一个简单的自动化测试,但在设置时遇到了问题。我无法启动firefox。下面是我的代码,后面是错误堆栈 代码: 错误堆栈:这是我尝试在ECLIPSE中运行代码时控制台窗口中显示的内容org.openqa.selenium.WebDriverException:java.net.ConnectException:无法使用GeckoDriver和selenium连接到localhost/0:0:0:0:0:0:1:1941,java,selenium,firefox,geckodriver,selenium-firefoxdriver,Java,Selenium,Firefox,Geckodriver,Selenium Firefoxdriver,我试图使用Eclipse编写一个简单的自动化测试,但在设置时遇到了问题。我无法启动firefox。下面是我的代码,后面是错误堆栈 代码: 错误堆栈:这是我尝试在ECLIPSE中运行代码时控制台窗口中显示的内容 Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:1941
Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:1941
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'LAPTOP-P3SB6R8A', ip: '192.168.1.6', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_161'
Driver info: driver.version: FirefoxDriver
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:92)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:147)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:125)
at cucumberTest.seleniumTest.main(seleniumTest.java:18)
Caused by: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:1941
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:247)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:165)
at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)
at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)
at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
at okhttp3.RealCall.execute(RealCall.java:77)
at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:103)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:105)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
... 6 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at okhttp3.internal.platform.Platform.connectSocket(Platform.java:129)
at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:245)
... 28 more
线程“main”org.openqa.selenium.WebDriverException:java.net.ConnectException:未能连接到本地主机/0:0:0:0:0:1:1941中出现异常
构建信息:版本:“3.141.59”,修订版:“e82be7d358”,时间:“2018-11-14T08:25:53”
系统信息:主机:'LAPTOP-P3SB6R8A',ip:'192.168.1.6',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'1.8.0_161'
驱动程序信息:Driver.version:FirefoxDriver
位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:92)
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)
位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:131)
位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:147)
位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:125)
在cucumberTest.seleniumTest.main(seleniumTest.java:18)
原因:java.net.ConnectException:无法连接到本地主机/0:0:0:0:0:1:1941
位于okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:247)
位于okhttp3.internal.connection.RealConnection.connect(RealConnection.java:165)
在okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257)
在okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135)中
位于okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114)
在okhttp3.internal.connection.ConnectionInterceptor.intercept(ConnectInterceptor.java:42)处
在okhttp3.internal.http.RealInterceptorChain.procedure(RealInterceptorChain.java:147)
在okhttp3.internal.http.RealInterceptorChain.procedure(RealInterceptorChain.java:121)
在okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
在okhttp3.internal.http.RealInterceptorChain.procedure(RealInterceptorChain.java:147)
在okhttp3.internal.http.RealInterceptorChain.procedure(RealInterceptorChain.java:121)
位于okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
在okhttp3.internal.http.RealInterceptorChain.procedure(RealInterceptorChain.java:147)
位于okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
在okhttp3.internal.http.RealInterceptorChain.procedure(RealInterceptorChain.java:147)
在okhttp3.internal.http.RealInterceptorChain.procedure(RealInterceptorChain.java:121)
在okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
在okhttp3.RealCall.execute(RealCall.java:77)
位于org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:103)
位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:105)
位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)
位于org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
... 还有6个
原因:java.net.ConnectException:连接被拒绝:连接
位于java.net.DualStackPlainSocketImpl.waitForConnect(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(未知源)
位于java.net.AbstractPlainSocketImpl.doConnect(未知源)
位于java.net.AbstractPlainSocketImpl.connectToAddress(未知源)
位于java.net.AbstractPlainSocketImpl.connect(未知源)
位于java.net.PlainSocketImpl.connect(未知源)
位于java.net.socksocketimpl.connect(未知源)
位于java.net.Socket.connect(未知源)
位于okhttp3.internal.platform.platform.connectSocket(platform.java:129)
位于okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:245)
... 28多
有人能帮我找出问题所在吗?此错误消息
Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:1941
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'LAPTOP-P3SB6R8A', ip: '192.168.1.6', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_161'
Driver info: driver.version: FirefoxDriver
.
Caused by: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:1941
…表示您的程序无法启动/生成新的GeckoDriver服务
使用Selenium v3.x、GeckoDriver和Firefox启动新的GeckoDriver服务和Firefox浏览器会话时,您需要通过System.setProperty()
行传递键webdriver.gecko.driver,以及设置为GeckoDriver的绝对路径的值,如下所示:
System.setProperty("webdriver.gecko.driver", "C:\\path\\to\\geckodriver.exe");
driver = new FirefoxDriver();
另外,
- 您的JDK版本是1.8.0_161,非常旧
- 您的Selenium客户端版本是v3.141.59
- 我们不知道你的GeckoDriver版本
- 我们不知道您的Firefox版本
- 将JDK升级到最新级别
- 将GeckoDriver升级至标高
- GeckoDriver位于指定位置
- GeckoDriver对非root用户具有可执行权限
- 将Firefox版本升级到Firefox v65.0级别
- 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
- 如果您的基本Web客户端版本太旧,请通过卸载它并安装最新的GA和Web客户端发布版本
- 重新启动系统
- 以非root用户身份执行
测试
- 始终在
方法中调用tearDown(){}
,关闭并销毁driver.quit()
System.setProperty("webdriver.gecko.driver", "C:\\path\\to\\geckodriver.exe"); driver = new FirefoxDriver();