簡體   English   中英

從Selenium RemoteWebDriver與Selenium Docker Firefox容器連接時,如何解決“拒絕連接”錯誤?

[英]How to fix “Connection Refused” error while connecting with Selenium Docker Firefox container from Selenium RemoteWebDriver?

我一直在嘗試通過為Standalone-Firefox瀏覽器創建Docker容器並使用Selenium RemoteWebDriver將其連接來學習Docker。

我已經安裝了docker映像並確保其正在運行。 我正在嘗試訪問Google.com並打印標題。

但是,我收到“線程“主”中的異常” org.openqa.selenium.remote.UnreachableBrowserException:無法啟動新的會話。可能的原因是遠程服務器的地址無效或瀏覽器啟動失敗。 錯誤。

Docker Image已正確設置

https://github.com/SeleniumHQ/docker-selenium

![Docker映像成功運行](E:\\ Udemy Courses \\ SDET Architect \\ Successful Docker Running.JPG)

package dockerValidation;

import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

public class ChromeStandAloneTest {
    public static void main(String[] args) throws MalformedURLException {
        // TODO Auto-generated method stub

        URL url = new URL("http://localhost:4444/wd/hub");      
        // Static Class named DesiredCapabilities is used. No need to create object
        DesiredCapabilities capabilities = DesiredCapabilities.firefox();

        // RemoteWebDriver to run test on Cloud, Docker, etc
        RemoteWebDriver rwd = new RemoteWebDriver(url, capabilities);

        rwd.get("http://google.com");
        System.out.println(rwd.getTitle());
    }
}

預期結果(Eclipse控制台)

2019年5月15日,下午6:36:39 org.openqa.selenium.remote.DesiredCapabilities firefox信息:使用new FirefoxOptions()優於DesiredCapabilities.firefox() 2019年5月15日,下午6:36:55 org.openqa.selenium .remote.ProtocolHandshake createSession INFO:檢測到的方言:OSS Google

實際結果

2019年5月15日下午6:36:39 org.openqa.selenium.remote.DesiredCapabilities firefox信息:使用DesiredCapabilities.firefox()首選使用new FirefoxOptions()線程“ main”中的org.openqa.selenium.remote.UnreachableBrowserException :無法開始新的會話。 可能的原因是遠程服務器的地址無效或瀏覽器啟動失敗。 構建信息:版本:'3.141.59',修訂版本:'e82be7d358',時間:'2018-11-14T08:17:03'系統信息:主機:'DESKTOP-QJQOV4L',ip:'192.168.99.1',os .name:'Windows 10',os.arch:'amd64',os.version:'10 .0',java.version:'1.8.0_131'驅動程序信息:driver.version:org.openqa.selenium.remote上的RemoteWebDriver。 org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:131)上的org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)上的RemoteWebDriver.execute(RemoteWebDriver.java:573)。 dockerValidation.ChromeStandAloneTest.main(ChromeStandAloneTest.java:20)處的openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:144)原因:java.net.ConnectException:無法連接到localhost / 0:0:0:0 :0:0:0:1:4444,位於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.ConnectInterceptor.intercept(ConnectInterceptor。 okhttp3.internal.http.RealInterceptorChain.java.147處的Java:42)(okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)處的okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor .java:93),位於okhttp3.internal.http.RealInterceptorChain.java(147),位於okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121),位於okhttp3.internal.http.BridgeInterceptor.intercept(位於okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)的BridgeInterceptor.java:93)位於okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)處於okhttp3.internal.http.RealIntero okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)上的rChain.proceed(RealInterceptorChain.java:147)okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)上的網址http://okhttp3.RealCall.execute(RealCall.java) :77),位於org.openqa.selenium的org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:105)的org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:103)。 org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)上的remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74)在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) ... 4更多原因:java.net.ConnectException:拒絕連接:在java.net處以java.net.DualStackPlainSocketImpl.waitForConnect(本機方法)進行連接。在java.net處以DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)進行連接。 java.net.A上的AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) java.net.bstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)在java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)在java.net.SocksSocketImpl.connect(SocksSocketI .java:392),位於okhttp3.internal.platform.Platform.connectSocket(Platform.java:129),位於okhttp3.internal.connection.RealConnection.connectSocket(RealConnection。 java:245)...還有26個

我也一樣,重啟docker幫助了我。 不是最好的解決方案,但它可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM