Webdriver Невозможно подключиться к хосту 127.0.0.1 на порту 7055 через 45000 мс


139

У меня есть ящик, на котором я запускаю тесты. Похоже, что Дженкинс будет подключаться по ssh и выполнять команды, описанные в конкретном запущенном задании.

Здесь я пытаюсь запустить тесты Selenium Webdriver, но он сообщает мне, что у меня есть ошибки при запуске firefox. Конечная идея состоит в том, чтобы полностью запустить веб-тесты на этом окне, а также сделать несколько снимков экрана с ошибками.

Я использую selenium-java-2.25.jar, firefox 10, Linux OS.

Забавно то, что я могу вручную ввести ssh в ящик, временно скопировать волшебный файл cookie другого пользователя в ящик (чтобы получить туннель X), выполнить export DISPLAY=mydisplay:1.0, а затем запустить мои тесты на селен с помощью ant. И это сразу вызовет firefox и тесты.

Здесь есть разные темы, которые, кажется, имеют одну и ту же проблему, и я думаю, что пробовал большинство из них. Вот что я сделал:

  • Перезагрузите коробку, войдите снова с помощью VNC.

  • Разместил сценарий bash в Jenkins для запуска перед запуском тестов на селен. Сценарий bash в основном просто выполняет export DISPLAY=mydisplay:1.0. Он также выполняется xclock. Это работает, поскольку я вижу, что xclock отображается в VNC.

  • iptables были отключены

  • firefox правильно расположен в / usr / bin / firefox

  • sshd_config показывает, что X11Forwarding имеет значение true.

  • Предположительно, понижение версии firefox помогло некоторым людям, но я не хочу этого делать. Webdriver в любом случае должен поддерживать FF 10.

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

Не похоже, что порт 7055 на localhost вообще существует:

netstat -an | grep 7055 - Ничего не печатается

Вот что говорит мой / etc / hosts:

  1 127.0.0.1               localhost.localdomain localhost
  2 ::1             localhost6.localdomain6 localhost6

Возможно, это как-то связано с отсутствием localhost: 7055? Я не знаю, куда идти дальше. тем не менее, почему вывод ошибки говорит, что ищет, display: :0.0когда я указал mydisplay:1.0?

И, наконец, сообщение об ошибке, которое я получаю:

[testng] org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Error: cannot open display: :0.0
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified
[testng] 
[testng] Error: cannot open display: :0.0
[testng] 
[testng]    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:109)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:245)
[testng]    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:109)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:185)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:178)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:174)
[testng]    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)
[testng]    at com.test.webtest.browser.BrowserFactory.createBrowser(BrowserFactory.java:24)
[testng]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[testng]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[testng]    at java.lang.reflect.Method.invoke(Method.java:601)

Я воспроизвел эту проблему под selenium 2.31.0
Дима Стар

У меня проблема с Selenium 2.47.1, и я не вижу сообщения о том, что сервер драйвера firefox запущен на порту XXXX. Вместо этого я получаю пустое окно, которое открывается, и я не могу управлять браузером, если предположить, что порт не открылся для прослушивания команд протокола проводов из теста.
djangofan

Кажется, что комбинация Selenium server 2.47.1 и Firefox 40 в порядке, не работает с Firefox 41 для меня.
Ростислав Матл

Если в вашем ящике нет графического интерфейса и вы запускаете тесты в ящике с помощью firefox, вы получите эту ошибку. Я предлагаю вам попробовать с Xvfb в драйвере дисплея памяти. Или это также может быть проблема совместимости версии Firefox и версии Selenium.
Прасанта Бисвас

Ответы:


91

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

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

Моя проблема началась, когда я перешел с FF 15 на FF 16. При запуске на Ubuntu это происходит автоматически вместе с другими обновлениями, но я считаю, что это было критическое изменение.

Проблема решена переходом с Selenium 2.24.1 на Selenium 2.25.0

Поскольку изменение селена заключается в том, чтобы просто загрузить файл jar и запустить его вместо старого, стоит попробовать это как быстрое и легкое средство устранения неполадок - если это не помогает, просто переключитесь обратно. В вашем случае я не уверен, какую версию Selenium попробовать, но я думаю, что 2.24 должна работать с FF 10.

Еще одна проблема, которую я обнаружил в прошлом, заключается в том, что Firefox не запускается с правами root в Ubuntu. Это происходит, если Selenium работает как служба или, возможно, запускается из сценария bash или задания cron. Это может объяснить, почему он работает для вас, а не для Дженкинса.


2
Я использую FF 19.0 и selenium-server-standalone-2.29.0.jar в Ubuntu. Когда я запускал свои тесты на селен в Jenkins, я получил ту же ошибку: org.openqa.selenium.firefox.NotConnectedException: невозможно подключиться к хосту 127.0.0.1 на порту 7055 через 45000 мс. Вывод консоли Firefox: [testng] Ошибка: отображение не указано [testng] Ошибка: отображение не указано
Ripon Al Wasim

@RiponAlWasim Удачи в разрешении проблемы? Я использую 2.31.0, и у меня такая же проблема.
Петр Пеллер

@ Петр Пеллер: какая у тебя версия FF?
Рипон Аль Васим,

1
Кажется, это постоянная проблема. Я получил эту ошибку с Selenium Webdriver 2.47 и Firefox 44. Обновление Selenium Webdriver до 2.53 исправило ее.
B Seven

1
tl; dr - Обновите Selenium (файлы .jar здесь - selenium-release.storage.googleapis.com/index.html )
rinogo

14

У меня была аналогичная проблема. Возможно, этот ответ вам тоже поможет.

Похоже, у вас происходят две разные ошибки:

  1. Unable to connect to host 127.0.0.1 on port 7055
  2. Error: no display specified

Причина Unable to connectошибки в том, что версия Selenium Server не умеет работать с более новой версией Firefox. Вам необходимо загрузить более новую версию Selenium Server, которая поддерживает более новую версию Firefox.

Причина Error: no display specifiedошибки в том, что Firefox запущен, но на удаленном хосте нет X-сервера (GUI). Вы можете использовать перенаправление X11 для запуска Firefox на удаленном хосте, но отображать его на локальном хосте. В Mac OS X вам нужно будет загрузить XQuartz , чтобы использовать пересылку X11.


13

Вам необходимо проверить совместимость браузера, прежде чем вы решите протестировать с помощью Selenium:

https://github.com/SeleniumHQ/selenium/blob/master/java/CHANGELOG

Это может помочь ответить на поставленный выше вопрос.


Это была проблема, с которой я столкнулся. И в моем случае это был не браузер. Это была основная ОС. Я использую Mac OS X - Yosemite. И только последний селен вроде бы с ним работает.
Ajit S

2
ссылка не работает, сэр
mido

8

Получите последнюю версию Selenium jar (2.30) для FireFox 19

Вы можете скачать последние jar-файлы (2.31 на момент написания) здесь: https://code.google.com/p/selenium/downloads/list


Новый URL - github.com/seleniumhq/selenium . Если вам просто нужны банки (например, selenium-server-standalone-2.53.0.jar), вы можете получить их здесь: selenium-release.storage.googleapis.com/index.html
rinogo

6

Я решил эту проблему, понизив свой Firefox до более старой версии, которая ранее хорошо работала с Selenium-WebDriver. В моем случае мне пришлось вернуться к Firefox 18, и эта версия работала с Selenium 2.27.

Вот ссылка для получения более старых версий firefox: https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/


5

Эта проблема преследовала меня долгое время, и я видел одно работающее решение в случае Firefox - использовать обновленный драйвер firefox .

  • Если ваши обновления Firefox происходят автоматически, вы можете время от времени сталкиваться с этой проблемой. Похоже, ребята из Firefox развиваются слишком быстро или им наплевать на обратную совместимость.

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

  • Затем я перехожу в репозиторий maven для репозитория драйвера selenium firefox - http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver и загружаю последнюю версию.

  • или обновите мой pom.xml (если используется maven) новой версией драйвера firefox прямо сейчас - 2.40.0

  • Нет простого способа избежать этой проблемы, если вы действительно явно не заблокируете автоматическое обновление из firefox (вы можете сделать это (на Mac) в настройках - Дополнительно - Обновление - Выберите «Проверить наличие обновлений, но позвольте мне выбрать, устанавливать ли их») )

  • Если ваши скрипты работают в автоматическом режиме, вы можете отключить обновления. Однако это может создать другие проблемы. Поскольку у большинства людей / пользователей по умолчанию могут быть включены обновления Firefox. Итак, ваше приложение на самом деле не тестируется на более поздних версиях.


5

У меня были Firefox 47 и Selenium 2.53 , и я получил ту же ошибку. Мое решение было изменить Firefox 47 на Firefox 46 , проблема была решена.


4

Обновите selenium jars, скачайте селен 2.31.0

Эта проблема была решена селеновыми парнями

Это была проблема совместимости.

Ура


3

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

Чтобы правильно установить переменную, вам нужно установить ее в Jenkins. Перейдите в Управление Jenkins> Управление узлами> Мастер> Настроить . Установите флажок Переменные среды , затем введите ДИСПЛЕЙ в поле имени и установите значение: 1.0.

Кроме того, вам необходимо установить разрешения, попробуйте отключить элементы управления доступом xhost, используя xhost +в терминале.


1
Этот "xhost +" устранил мою проблему, которая заключалась в том, что запуск webdriver с sudo не открывал браузер - теперь он работает.
Ник Перкинс,

2

Я тоже столкнулся с той же проблемой. Всякий раз, когда мы или webdriver открываем, браузер FF проверяет наличие обновлений. В этом случае я попытаюсь выполнить обновление во время выполнения, и тогда вы получите сообщение об ошибке, даже если оно будет обновлено правильно только потому, что вы не обновили версию Selenium должным образом.

Перейдите на « http://docs.seleniumhq.org/download/ » и загрузите последнюю версию. А теперь иди и проверь, действительно ли проблема решена. :)


1

У меня такая же ошибка; Я использовал selenium-java версии 2.25.0 и Firefox vresion 18.0.2; Я изменил версию selenium-java на 2.30.0 и теперь работает.


1

Для решения этой проблемы используйте новые файлы jar, доступные на http://docs.seleniumhq.org/download/ . Что касается java, C #, php и т. Д., Firefox 27.0.1 требует 2.39.0 версии драйвера.


Для меня он работает с Firefox 29.0 и драйвером селена 2.39.0 (раньше у меня была такая же проблема на lubuntu 14.0.4)
Huluvu424242

1

Просто установите плагин Xvnc в Jenkins. Проблема должна быть решена.


1

У меня такая же ошибка «selenium_Unable to connect to host 127.0.0.1 on port 7055» Решение: я использовал selenium-java-2.48.2 с Firefox версии 43.0.1, и теперь он работает нормально.


1

У меня тоже была такая же проблема, но проблема решена после понижения версии firefox до 35.0.1, а моя версия селена - 2.43


1

У меня была точно такая же проблема с докером, но я нашел решение в журнале, предшествующем упомянутой вами ошибке.

selenium_1  | 2016-11-11 11:19:34,498 DEBG 'xvfb' stderr output:
selenium_1  | (EE)
selenium_1  | Fatal server error:
selenium_1  | (EE) Server is already active for display 99
selenium_1  |   If this server is no longer running, remove /tmp/.X99-lock
selenium_1  |   and start again.
selenium_1  | (EE)

Я последовал совету, и проблема была решена.


0

Вот как он вел себя, когда я использовал статическое свойство IWebDriver и вызываю его из нескольких тестовых методов.

public class LanguageMenu
{
    private static IWebDriver drv;

    static LanguageMenu()
    {
       drv = Driver.Instance;
    }
    ...

    public static void English()
    {
        drv.FindElement(By.Id("mvc_lang_en"));
        el.Click();
    }

    public static void Rusian()
    {
        ...
    }

    ...
}

подобно

 [TestMethod]
 public void Language_SwitchTo_English()
 {
     LanguageMenu.English();
     Assert.IsTrue(ContactPage.IsAt("Contact"));
 }

 [TestMethod]
 public void Language_SwitchTo_Rusian()
 {
     LanguageMenu.English();
     Assert.IsTrue(ContactPage.IsAt("Контакт"));
 }

Решение

Для каждого вызывающего тестового метода создайте новый экземпляр Driver

 private static void English()
 {
            var drv = Driver.Instance;
            var el = drv.FindElement(By.Id("mvc_lang_en"));
            el.Click();
 }

0

Обновите банки селена, если наш скрипт селена не выполняется. В настоящее время я использую selenium-java-2.43.0-srcs

Теперь все работает нормально


0

Такое бывает на разных версиях ff. Я использую последнюю версию ff 39, используя selenium-server-standalone-2.41.0.jar и selenium-java-2.41.0.zip, который показывает ту же ошибку.

Получите последние файлы jar сервера и клиента здесь для совместимости, которые я использовал серверную и клиентскую версии 2.47.0 и 2.47.1 соответственно. И БУМ! Это сработало.


0

Это происходит из-за старых версий. Просто обновите браузер до последней версии и обновите пакет selenium webdriver до последней версии.


0

Просто перезапустите терминал. Терминал больше ничего не вешается. После этого все будет нормально работать


0

Пополнение базы знаний. У нас была такая же проблема с Bamboo. Проблема была решена с помощью свойств окружающей среды на бамбуке.

DISPLAY=":1"

Добавление значения в качестве системных свойств в pom.xml или в командной строке не сработало.


0

В Windows: проверьте также "разрядность" вашего Firefox. Firefox 43.0.1 64bit не работает с Selenium 2.50.0. Хорошо работает с Firefox 43.0.1 32bit ...


0

Я тоже застрял в этой ошибке в течение трех дней и, наконец, понял ее. Вы можете просмотреть ответ, который я дал здесь. Это проблема совместимости браузера и сервера селена. Надеюсь, это поможет. Вы можете проверить совместимость браузера по этой ссылке.


0

Сегодня у меня была такая же проблема. Чтобы исправить это, я понизил версию Firefox с 51 до 47, и он работает.

Примечание. Я использую Linux Ubuntu Mate в Virtual Box, а хост - это другой Ubuntu Mate. Все ОС 64-битные, а также Firefox.



0

У меня была такая же проблема с firefox 38.

После использования следующих зависимостей версий я смог решить проблему.

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.0</version>
    </dependency>

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>2.53.0</version>
    </dependency> 

0

Думаю, это может быть проблема отображения. Если у вас нет графического интерфейса в коробке, то запуск firefox из selenium webdriver даст эту ошибку.

Чтобы решить эту проблему, сначала установите Xvfb [ yum install Xvfb -y] (драйвер виртуального дисплея) в поле. Затем запустите свой тест от jenkins с помощью xvfv-run -a -d <your test execution command>. Это запустит браузер в виртуальном буфере дисплея. Также он может делать скриншоты с помощью selenium webdriver.


-1

Решение -

1) Обновите свой Selenium Server, то есть selenium jar "selenium-server-standalone-2.xx.x.JAR" до "selenium-server-standalone-2.45.0.JAR"

2) Обновите клиентский драйвер Selenium, т.е. папку selenium libs "selenium-java-2.xx.x" до "selenium-java-2.45.0"

3) Проверьте и установите совместимую версию Firefox.

Обратитесь - Загрузите обновленные библиотеки selenium и jar, т.е. версию 2.45.0

Это РЕШИТ вашу проблему .. Ура !!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.