Selenium WebDriver - ошибка FirefoxDriver: не удалось запустить сокет в пределах 45000 - PullRequest
12 голосов
/ 05 октября 2011

Я получаю эту ошибку:

tests.IntegrationTests.Selenium.RegisterAndLogin (TestFixtureSetUp):
SetUp : OpenQA.Selenium.WebDriverException : Failed to start up socket within 45000

, когда я выполняю следующее в своем коде:

using System;
using System.Text;
using NUnit.Framework;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;

namespace ekmProspector.tests.IntegrationTests.Selenium
{
    [TestFixture]
    public class RegisterAndLogin
    {
        private IWebDriver driver;   

        [TestFixtureSetUp]
        public void Init()
        {            

            driver = new FirefoxDriver();
        }
}

Не может быть намного проще на самом деле, но ошибкасо смертельным исходом.Есть идеи?

Ответы [ 17 ]

8 голосов
/ 18 января 2016

Решение так же просто, как пирог:)

Щелкните правой кнопкой мыши по своему проекту .Net (C #) и выберите «Управление пакетами NuGet ...», как показано ниже:

enter image description here

Затем выберите специфичные для Selenium пакеты, которые нужно обновить, поэтому обновите их.

enter image description here

Обновленные пакеты будут обновлены автоматически.

enter image description here

У меня это работает.

7 голосов
/ 06 октября 2011

В итоге я получил это, я удалил все подпапки пакетов, которые были добавлены NuGet при установке WebDriver, и решил добавить их вручную. Создал папку 'lib', затем разархивировал бинарные файлы селеном в эту папку. Затем добавлены ссылки на все двоичные файлы. Кажется, теперь все в порядке.

2 голосов
/ 07 сентября 2016

Версия

FF v48 Selenium Webdriver v2.53.1
Windows 7 (x64)
.Net 4.0 и .Net 4.5

Попытки исправить

Что касается @jaffa, я вручную добавил следующие ссылки и получил проблему:

WebDriver.dll v2.53.1
WebDriver.Support.dll v2.53.1


Я тогда не ссылался на них и следовал за @HassanRahman и использовал NuGet:

WebDriver.dll v2.53.1
WebDriver.Support.dll v2.53.1

Все та же ошибка.

OpenQA.Selenium.WebDriverException: не удалось запустить сокет в пределах 45000


Устранение неполадок

У меня была догадка, и я решил перейти с таргетинга на .Net 4.5 до .Net 4.0 (полный профиль не для клиента), и ошибка изменилась на:

Произошло необработанное исключение типа 'OpenQA.Selenium.WebDriverException' в WebDriver.dll. Дополнительная информация: Невозможно найти двоичный файл Firefox в PATH или в местах установки по умолчанию. Убедитесь, что Firefox установлен. ОС выглядит так: Vista

Интересно, вот почему люди, которые переустановили FireFox, снова заработали?

Где-то должен быть набор ключей реестра или переменной среды, чтобы найти ApplicationStartupPath в FireFox. Некоторые из этих путей вы можете увидеть в этой трассировке ProcessMonitor:

enter image description here

На скриншоте выше вы можете увидеть приложение (AstrobLabe), которое я использую для запуска этой строки кода:

using (IWebDriver driver = new FirefoxDriver(ffprofile))

Вызывает поиск FireFox v48 и ищет его в неправильном каталоге :

C: \ Program Files (x86) \ Mozilla FireFox \ FireFox.exe

В моей системе FireFox установлен в:

C: \ Program Files (x86) \ Mozilla \ Firefox \ FireFox.exe

В любом случае, поиск и исправление этой проблемы (невозможно найти бинарный файл Firefox в PATH или в местах установки по умолчанию) может быть исправлено кем-то другим, я просто скопировал каталог Firefox в Mozilla FireFox.

Но затем возвращается к исходной ошибке:

Произошло необработанное исключение типа 'OpenQA.Selenium.WebDriverException' в WebDriver.dll. Дополнительная информация: Не удалось запустить сокет в течение 45000 миллисекунд. Попытка подключения по следующим адресам: 127.0.0.1:7055

Решение

Затем я наткнулся на ответ, в котором говорится, что FireFox v46 работает с Selenium 2.53: Какая версия Firefox совместима с Selenium 2.53.0?

Когда я понизил версию, я увидел, что FFv46 устанавливает на:

C: \ Program Files (x86) \ Mozilla FireFox \ FireFox.exe

Так что проверьте, находится ли ваша установка FF в этом месте - что на основе ProcessMonitor Trace Selenium не может найти:

C: \ Program Files (x86) \ Mozilla \ Firefox \ FireFox.exe

1 голос
/ 07 ноября 2012

Я обнаружил, что смог исправить эту проблему в Firefox Selenium, обновив свои пакеты Selenium в NuGet.

Но все равно остается проблема с ручным обновлением драйверов Chrome и IE, если возникают подобные проблемы.возникает.

1 голос
/ 25 января 2017

Ни в одном из предыдущих ответов четко не указано, что определенные версии Selenium WebDriver работают с конкретными версиями Firefox. Этот вопрос SO говорит нам, что матрица совместимости Webdriver / Firefox здесь .

Еще одна вещь, о которой стоит упомянуть, это то, что Firefox имеет тенденцию обновляться автоматически более или менее автоматически, когда становятся доступны новые версии, в зависимости от настроек.Поскольку Webdriver не обновляется автоматически, это открывает возможность неожиданного нарушения совместимости Webdriver / Firefox, и ваши тестовые сценарии перестают работать, когда Firefox обновляет себя до версии, которая не поддерживается вашей версией Webdriver.Я подозреваю, что ответы выше, которые инструктируют пользователей переустанавливать Webdriver с помощью Nuget, просто выбирают новейший Webdriver, который работает с новейшим Firefox, который только что установился на вашем компьютере.

Чтобы предотвратить обновление Firefox самостоятельно, нажмитена кнопке меню в Firefox (три горизонтальные полосы, верхний правый угол), выберите «Параметры», выберите «Расширенные» в левом меню, выберите вкладку «Обновить» в верхней части, и вы увидите набор переключателейв разделе «Обновления Firefox».Выберите другой параметр, который «Автоматически устанавливать обновления».

1 голос
/ 10 декабря 2015

У меня была эта проблема с последней версией Firefox (42) и Selenium (2.48.2). Удаление и повторная установка (через Nuget) исправили проблему для меня.

1 голос
/ 27 сентября 2016

Я обнаружил, что , работающий с более старой версией resharper (9.2), не может работать с самой последней nunit , и это вызвало тайм-аут селена.

Временным решением было отключить resharper (Инструменты-> Параметры -> Resharper -> Отключить), постоянное решение обновляет resharper.

1 голос
/ 19 ноября 2011

Я решил это, полностью удалив firefox и все профили и переустановив.

1 голос
/ 27 февраля 2015

Для тех, кто нашел этот вопрос совсем недавно (2015-02-27), существует открытая проблема с совместимостью с Selenium и Firefox 36:

https://code.google.com/p/selenium/issues/detail?id=8399

Вы можете скачать Firefox 35 здесь: http://www.filehippo.com/download_firefox/59889/

1 голос
/ 31 октября 2014

Я также столкнулся с проблемой при запуске теста в NUnit. Я нашел много решений, чтобы удалить или ухудшить ваш Firefox. Но я решил это другим способом, я удалил все ссылки, связанные с веб-драйверами, и добавил обновленный веб-драйвер в Решение.

В моем приложении версия веб-драйвера была 2.24, поэтому я заменил на 2.43, и теперь мой тест работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...