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


138

У мене є ящик, де я запускаю тести. Схоже, що Дженкінс забився і виконує команди, описані в конкретній роботі, яка виконується.

Тут я намагаюся запустити тести Selenium Webdriver, але це говорить про те, що у мене є помилки при запуску firefox. Кінцева ідея - запустити веб-тести на цьому полі повністю, а також зробити знімки екрана помилок.

Я використовую selenium-java-2.25.jar, firefox 10, linux OS.

Найсмішніше, що я можу вручну export DISPLAY=mydisplay:1.0запустити в коробку, тимчасово скопіювати чарівний файл cookie від іншого користувача на коробку (щоб отримати X тунель), зробити , а потім запустити свої тести на селен за допомогою мурахи. І це виведе firefox і тести просто чудово.

Тут є різні теми, які, здається, мають таку саму проблему, і я думаю, що я спробував більшість з них. Ось що я зробив:

  • Перезавантажте вікно, увійдіть назад з VNC.

  • Розмістив баш сценарій у Дженкінсі для запуску перед запуском тестів на селен. Баш сценарій в основному просто робить export DISPLAY=mydisplay:1.0. Він також виконує xclock. Це працює так, як я бачу, як в VNC відображається xclock.

  • iptables вимкнено

  • Firefox правильно розташований у / usr / bin / firefox

  • sshd_config показує, що X11Forwarding є істинним.

  • Нібито зменшення 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)

Я відтворив цю проблему під селеном 2.31.0
Діма Зірка

У мене ця проблема із Selenium 2.47.1, і я не бачу повідомлення про те, що сервер драйверів firefox запустився на порт XXXX. Натомість я отримую порожнє вікно, яке відкривається, і немає контролю над браузером, якщо припустити, що порт не відкрився для прослуховування команд дротяного протоколу з тесту.
djangofan

Здається, що поєднання сервера Selenium 2.47.1 і Firefox 40 нормальне, для мене це не працює з Firefox 41.
Ростислав Матл

Якщо у вас немає графічного інтерфейсу, і ви проводите тести у вікні за допомогою firefox, ви отримуєте цю помилку. Я пропоную спробувати з Xvfb в драйвері дисплея пам'яті. Або це також може бути проблемою сумісності версії Firefox та селенової версії.
Прасанта Бісвас

Відповіді:


91

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

Здається, у Selenium та Firefox виникають труднощі з спілкуванням один з одним - я підозрюю, що Firefox "еволюціонує" зміни протягом декількох випусків, тому сумісність назад і вперед не завжди гарантується, а несумісність завжди створює ту саму помилку.

Моя проблема почалася, коли я перейшов з FF 15 на FF 16. Якщо працює на Ubuntu, це відбувається автоматично магічно разом з іншими оновленнями, але я вважаю, що це було критичним зміною.

Проблему було вирішено шляхом переходу з селену 2.24.1 на селен 2.25.0

Оскільки зміна селену - це просто завантажити файл jar і запустити його замість старого, варто спробувати це як швидкий і простий засіб усунення несправностей - якщо це не допоможе, просто перемкніть назад. У вашому випадку я не впевнений, яку версію Selenium спробувати, але я думаю, що 2,24 має працювати з FF 10.

Ще одна проблема, яку я виявив у минулому, - це те, що Firefox не працюватиме як root на Ubuntu. Це трапляється, якщо Selenium працює як сервіс, або, можливо, він запущений із скрипту bash або cron. Це може пояснити, чому це працює для вас, але не для Дженкінса.


2
Я використовую FF 19.0 і селен-сервер-автономний-2.29.0.jar в Ubuntu. Коли я запускав свої тести на селен у Дженкінсі, я отримав таку ж помилку: org.openqa.selenium.firefox.NotConnectedException: Не вдається підключитися до хоста 127.0.0.1 на порту 7055 після 45000 мс. Вихід з консолі Firefox: [testng] Помилка: не вказано дисплея [testng] Помилка: не вказано дисплей
Ripon Al Wasim

@RiponAlWasim Будь-яка удача у вирішенні проблеми? Я бігаю 2,31,0 і маю ту саму проблему.
Петро Пеллер

@Petr Peller: яка версія вашого FF?
Ріпон Аль Васім

1
Це, здається, триває проблема. У мене виникла помилка за допомогою Selenium Webdriver 2.47 та Firefox 44. Оновлення Selenium Webdriver до 2,53 виправило її.
B Сім

1
ТЛ; ін - Upgrade Селен (.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, яка підтримує нову версію 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. І лише останній селен, здається, працює з ним.
Аджит S

2
посилання порушено сер
середина

8

Отримайте останні баночки селену (2.30) для FireFox 19

Ви можете завантажити найновіші банки (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 repo для драйвера релеону 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

Оновіть селенові банки, завантажте селен 2.31.0

Це питання вирішили хлопці селену

Це було проблемою сумісності.

Ура


3

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

Щоб правильно встановити змінну, потрібно встановити її в Дженкінсі. Перейдіть до Manage Jenkins> Manage Nodes> Master> Configure . Установіть прапорець Змінні середовища , а потім введіть DISPLAY у полі імені та встановіть значення: 1,0.

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


1
Ця проблема "xhost +" вирішила мою проблему, яка полягала в тому, що запуск веб-драйвера з sudo не відкривав браузер - зараз він працює.
Нік Перкінс

2

Я також зіткнувся з тією ж проблемою. Щоразу, коли ми або webdriver відкриваємо веб-переглядач FF, буде перевіряти наявність оновлень. У такому випадку я спробую оновити протягом часу виконання, і тоді ви отримаєте помилку, навіть якщо вона належним чином оновлена ​​лише тому, що ви не оновили версію Selenium належним чином.

Перейдіть до " http://docs.seleniumhq.org/download/ " та завантажте останню версію. Тепер іди і перевіряй, проблема буде вирішена, справді. :)


1

Я отримав таку ж помилку; Я використав селен-Java версії 2.25.0 та Firefox vresion 18.0.2; Я змінив версію selelen-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 у Дженкінсі. Проблему слід вирішити.


1

У мене така ж помилка "selenium_Unable для підключення до хоста 127.0.0.1 на порту 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("Контакт"));
 }

Рішення

Для кожного методу тестування викликів створіть новий екземпляр драйвера

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

0

Оновіть селенові банки, якщо наш скрипт селену не виконується. В даний час я використовую селен-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

Це відбувається через старі версії. Просто оновіть браузер до останньої версії та оновіть пакунок web-драйвера selenium до останньої версії.


0

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


0

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

DISPLAY=":1"

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


0

У Windows: Перевірте також "біт" вашого Firefox. 64-бітний Firefox 43.0.1 не працює з Selenium 2.50.0. Добре працює з Firefox 43.0.1 32bit ...


0

Я теж затримався на цій помилці протягом трьох днів і, нарешті, зрозумів це. Ви можете переглянути відповідь, яку я дав тут . Це питання сумісності браузера та селену. Я сподіваюся, що це допомагає. Ви можете перевірити сумісність браузера за цим посиланням


0

У мене була така ж проблема і сьогодні. Щоб виправити, я знизив Firefox версії 51 до 47 і він працює.

Примітка. Я використовую Linux Ubuntu Mate у віртуальній коробці, а хост - ще один 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 із селену webdriver призведе до цієї помилки.

Щоб вирішити цю проблему, спочатку встановіть у вікно Xvfb [ yum install Xvfb -y] (віртуальний драйвер дисплея). Потім запустіть свій тест з джинкінів за допомогою xvfv-run -a -d <your test execution command>. Це запустить браузер у віртуальному буфері дисплея. Також він здатний отримувати скріншоти за допомогою веб-диска селену.


-1

Рішення -

1) Оновіть свій Selenium Server, тобто банку з селеном "selenium-server-standalone-2.xx.x.JAR" TO " -server-standalone-2.45.0.JAR"

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

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

Довідка - Довідково Завантажте оновлені селенові пасти та баночку, тобто версію 2.45.0

Це вирішить вашу проблему .. Привіт !!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.