Как исправить ошибку "Соединение отказано" при соединении с контейнером Selenium Docker Firefox из Selenium RemoteWebDriver?

Я пытался изучить Docker, создав контейнер Docker для браузера Standalone-Firefox и подключив его с помощью Selenium RemoteWebDriver.

Я установил образ докера и убедился, что он работает. Я пытаюсь получить доступ к 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 Console)

15 мая 2019 г. 18:36:39 org.openqa.selenium.remote.DesiredCapabilities firefox ИНФОРМАЦИЯ: Использование new FirefoxOptions() предпочтительнее DesiredCapabilities.firefox() 15 мая 2019 г. 18:36:55 org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Обнаруженный диалект: OSS Google

Фактический результат

15 мая 2019 г. 18:36:39 org.openqa.selenium.remote.DesiredCapabilities firefox ИНФОРМАЦИЯ: Использование new FirefoxOptions() предпочтительнее DesiredCapabilities.firefox() Исключение в потоке "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: RemoteWebDriver по адресу org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:573) в org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213) в org.openqa.selenium.remote.RemoteWebDriver.(RemoteWeb1: at.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:144) в dockerValidation.ChromeStandAloneTest.main(ChromeStandAloneTest.java:20). Причина: java.net.ConnectException: Не удалось подключиться к localhost/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.conceptor.Conceptor java:42) по адресу okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) по адресу okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) в кэше внешнего рецептора..java:93) на okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) на okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) на внешнем перехватчике. BridgeInterceptor.java:93) в okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) в okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpin rChain.proceed (RealInterceptorChain.java:147) по адресу okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) по адресу okhttp3.RealCall.getResponseWithInterceptorChaintt: RealCall.RealCall.:77) в org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:103) в org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:105) в org.se.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74) по адресу org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136) по адресу org.openqa.selenium.remote.RemavaWri.riveWriD... еще 4 Причины: java.net.ConnectException: Соединение отклонено: соединение на java.net.DualStackPlainSocketImpl.waitForConnect(собственный метод) на java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) на java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) в java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) в java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) в java.net.PlainSocketImpl.connect(PlainsSocket.mpl.jl.java:392) по адресу java.net.Socket.connect(Socket.java:589) по адресу okhttp3.internal.platform.Platform.connectSocket(Platform.java:129) по адресу okhttp3.internal.connection.RealConnection.connectSocket (RealConnection. Java:245) ... еще 26

0 ответов

У меня было так же, мне помог перезапуск докера. Не лучшее решение, но работает.

Другие вопросы по тегам