Подтвердить что ты не робот

Не удалось запустить сокет в 45000

Я использую FF версию 19

все было хорошо до вчерашнего дня, и сегодня утром я начал получать эту ошибку, и у меня есть тот же самый точный код, который был запущен раньше, ничего не изменилось

сообщение об ошибке:

Test 'M:.TestCases.12' failed: Failed to start up socket within 45000
    OpenQA.Selenium.WebDriverException: Failed to start up socket within 45000
    at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.ConnectToBrowser(Int64 timeToWaitInMilliSeconds)
    at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start()
    at OpenQA.Selenium.Firefox.FirefoxDriver.StartClient()
    at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
    at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxBinary binary, FirefoxProfile profile, TimeSpan commandTimeout)
    at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxBinary binary, FirefoxProfile profile)
    at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxProfile profile)

0 passed, 1 failed, 0 skipped, took 145.80 seconds (Ad hoc).

вот мой исходный код:

public static IWebDriver GetDriver()
        {
            switch (Common.BrowserSelected)
            {
                case "ff":
                    FirefoxProfile profile = new FirefoxProfile();
                    profile.SetPreference("network.http.phishy-userpass-length", 255);
                    profile.SetPreference("network.automatic-ntlm-auth.trusted-uris", url);
                    drv = new FirefoxDriver(profile);
                    break;
                case "ie":
                    var options = new InternetExplorerOptions();
                    options.IntroduceInstabilityByIgnoringProtectedModeSettings = true;
                    DesiredCapabilities capabilities = new DesiredCapabilities();
                    capabilities.SetCapability(CapabilityType.AcceptSslCertificates, true);
                    drv = new InternetExplorerDriver(options);
                    break;
                case "chrome":
                    //_driver = new ChromeDriver();
                    break;
            }
            return drv;
        }
4b9b3361

Ответ 1

В последних версиях Selenium была добавлена ​​поддержка Firefox 19 'support. Так как вы используете .NET, прямая загрузка для последней на момент публикации - версия 2.31.2:

selenium-release.storage.googleapis.com/index.html

Ответ 2

У меня есть эта проблема с Firefox 43 и Selenium 2.48. Это происходит, когда ваш сервер драйверов Selenium работает в 32-разрядном процессе, и вы запускаете 64-битную версию Firefox.

Причина заключается в том, что сервер webdriver пытается подключиться к порту 7055, который должен быть открыт webdriver, который запускается в исполняемом файле Firefox. Но вы можете увидеть в TcpView с сайта www.sysinternals.com, что Firefox не открывает этот порт. Таким образом, водитель ждет, пока не истечет время ожидания (45 секунд).

Это происходит даже после полного отключения брандмауэра Windows.

Все сообщения, которые я нашел в Интернете, НЕ помогают: обновить Selenium, понизить Firefox и т.д.

Но после установки 32-разрядной версии того же Firefox 43 он работает. Я вижу в TcpView, как Firefox 32 бит правильно открывает порт:

Firefox Selenium webdriver Port 7055

В моем коде я использую

FirefoxProfile Prof = new FirefoxProfile();
FirefoxBinary  Bin  = new FirefoxBinary(sBrowserExe);
mDriver = new FirefoxDriver(Bin, Prof);

С sBrowserExe = "C:\Program Files\Mozilla Firefox 43\firefox.exe" 64-разрядная версия Firefox 43 запущена, и я получаю исключение таймаута.

С sBrowserExe = "C:\Program Files (x86)\Mozilla Firefox 43\firefox.exe" запускается 32-битная версия Firefox 43, и она работает!


ОБНОВЛЕНИЕ: Разработчики из Firefox теперь полностью прекратили поддержку Selenium. Для новых версий Firefox от 48 требуется цифровая подпись для всех расширений, которые будут установлены.

https://wiki.mozilla.org/Addons/Extension_Signing

Я не понимаю, почему люди Selenium не могут получить подпись для текущего драйвера Selenium?

В Firefox версии 47.0 есть ошибка, которая не позволяет использовать ее с Selenium. Эта ошибка была исправлена ​​в версии 47.0.1.

Firefox версии от 48.0 и выше не устанавливают старый драйвер Selenium. Они должны быть автоматизированы с помощью драйвера Marionette (= Gecko).

Проблема в том, что Marionette по-прежнему бета-версии и имеет много недостающих функций, поэтому в настоящее время нет решения для автоматизации новых версий Firefox.

Как вы видите здесь, новый драйвер полон ошибок: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver/status

Ответ 3

Если обновление Webdriver не помогает, вы можете понизить FireFox, что решит проблему.

Ответ 4

Какую версию Selenium IDE вы используете? Попробуйте понизить версию Firefox. Замечания по выпуску IDE селена упоминаются в следующей ссылке.

https://code.google.com/p/selenium/wiki/SeIDEReleaseNotes

Надеюсь, что это поможет.

Ответ 5

Установите все обновления в диспетчере пакетов Nuget. Перезапустите IDE.

Версия для понижающего браузера не рекомендуется для тестирования. Но последний, но один вариант понижения звучит хорошо.

Это решение сработало для меня.