Webdriver Nie można połączyć się z hostem 127.0.0.1 na porcie 7055 po 45000 ms

138

Mam pudełko, w którym przeprowadzam testy. Wygląda na to, że Jenkins włączyłby ssh i wykonał polecenia opisane w konkretnym uruchomionym zadaniu.

Tutaj próbuję uruchomić moje testy Selenium Webdriver, ale mówi mi, że mam błędy podczas uruchamiania Firefoksa. Ostatecznym pomysłem jest uruchomienie testów internetowych w całości na tym pudełku, a także wykonanie kilku zrzutów ekranu z błędami.

Używam selenium-java-2.25.jar, firefox 10, linux OS.

Zabawne jest to, że mogę ręcznie wpisać ssh do pudełka, tymczasowo skopiować magiczne ciasteczko od innego użytkownika na pudełko (aby uzyskać tunel X), zrobić export DISPLAY=mydisplay:1.0, a następnie uruchomić moje testy selenu za pomocą mrówka. Spowoduje to wyświetlenie programu Firefox i testy będą w porządku.

Są tutaj różne wątki, które wydają się mieć dokładnie ten sam problem i myślę, że wypróbowałem większość z nich. Oto co zrobiłem:

  • Uruchom ponownie skrzynkę, zaloguj się ponownie za pomocą VNC.

  • Umieściłem skrypt bash w Jenkins, aby uruchomić go przed uruchomieniem testów selenu. Skrypt bash po prostu wykonuje plik export DISPLAY=mydisplay:1.0. Wykonuje również xclock. Działa to tak, jak widzę xclock wyświetlany w VNC.

  • iptables zostały wyłączone

  • Firefox jest poprawnie umieszczony w / usr / bin / firefox

  • sshd_config pokazuje, że X11Forwarding jest prawdziwe.

  • Podobno obniżenie wersji Firefoksa pomogło niektórym osobom, ale nie chcę tego robić. Webdriver i tak powinien obsługiwać FF 10.

Jednak żadne z powyższych nie rozwiązuje problemu.

Wygląda na to, że port 7055 na hoście lokalnym w ogóle nie istnieje:

netstat -an | grep 7055 - Nic się nie drukuje

Oto, co mówi mój / etc / hosts:

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

Może ma to coś wspólnego z hostem lokalnym: 7055 nie istnieje? Nie jestem pewien, dokąd się stąd udać. nadal, dlaczego w danych wyjściowych błędu jest napisane, że szuka, display: :0.0kiedy określiłem mydisplay:1.0?

I na koniec komunikat o błędzie, który otrzymuję:

[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)
user1636922
źródło
Odtworzyłem ten problem pod selenem 2.31.0
Dima Star
Mam problem z Selenium 2.47.1 i nie widzę komunikatu, że serwer sterownika firefox został uruchomiony na porcie XXXX. Zamiast tego pojawia się puste okno, które otwiera się i nie ma kontroli nad przeglądarką, zakładając, że port nie został otwarty w celu nasłuchiwania poleceń protokołu przewodowego z testu.
djangofan
Wygląda na to, że połączenie serwera Selenium 2.47.1 i Firefoksa 40 jest w porządku, nie działa z Firefoksem 41 dla mnie.
Rostislav Matl
Jeśli nie masz GUI w swoim pudełku i przeprowadzasz testy w pudełku przy użyciu programu Firefox, pojawi się ten błąd. Proponuję spróbować z Xvfb w sterowniku wyświetlacza pamięci. Lub może to być również problem z wersją przeglądarki Firefox i kompatybilnością wersji selenu.
Prasanta Biswas

Odpowiedzi:

91

Nie wiem, czy rozwiązałeś ten problem, ale właśnie rozwiązałem ten sam problem z drugiej strony.

Wygląda na to, że Selenium i Firefox mają trudności w rozmowie ze sobą - podejrzewam, że Firefox ewoluuje w wielu wersjach, więc kompatybilność wsteczna i do przodu nie zawsze jest gwarantowana, a niezgodność zawsze wydaje się generować ten sam błąd.

Mój problem zaczął się, kiedy przeniosłem się z 15 FF na 16 FF. Uruchamiając na Ubuntu, dzieje się to automatycznie w magiczny sposób wraz z innymi aktualizacjami, ale uważam, że to była krytyczna zmiana.

Problem został rozwiązany poprzez przejście z Selenium 2.24.1 na Selenium 2.25.0

Ponieważ zmiana selenu polega po prostu na pobraniu pliku jar i uruchomieniu go zamiast starego, warto wypróbować to jako szybkie i łatwe narzędzie do rozwiązywania problemów - jeśli to nie pomoże, po prostu przełącz się z powrotem. W twoim przypadku nie jestem pewien, którą wersję Selenium wypróbować, ale myślę, że 2.24 powinno działać z FF 10.

Innym problemem, który znalazłem w przeszłości, jest to, że Firefox nie działał jako root w systemie Ubuntu. Dzieje się tak, jeśli Selenium działa jako usługa lub jeśli jest uruchamiany ze skryptu bash lub zadania cron. To może wyjaśniać, dlaczego działa dla Ciebie, ale nie dla Jenkinsa.

user1771179
źródło
2
Używam FF 19.0 i selenium-server-standalone-2.29.0.jar w Ubuntu. Kiedy przeprowadziłem testy selenu w Jenkins, otrzymałem ten sam błąd: org.openqa.selenium.firefox.NotConnectedException: Nie można połączyć się z hostem 127.0.0.1 na porcie 7055 po 45000 ms. Dane wyjściowe konsoli Firefox: [testng] Błąd: nie określono wyświetlania [testng] Błąd: nie określono wyświetlania
Ripon Al Wasim,
@RiponAlWasim Masz szczęście w rozwiązaniu problemu? Używam wersji 2.31.0 i mam ten sam problem.
Petr Peller
@Petr Peller: jaka jest wersja twojego FF?
Ripon Al Wasim
1
Wydaje się, że jest to ciągły problem. Otrzymałem ten błąd z Selenium Webdriver 2.47 i Firefox 44. Aktualizacja Selenium Webdriver do 2.53 naprawiła go.
B Seven
1
tl; dr - Uaktualnij Selenium (pliki .jar tutaj - selenium-release.storage.googleapis.com/index.html )
rinogo
14

Miałem podobny problem. Może ta odpowiedź również ci pomoże.

Wygląda na to, że masz dwa różne błędy:

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

Powodem Unable to connectbłędu jest to, że wersja Selenium Server nie wie, jak współpracować z nowszą wersją przeglądarki Firefox. Musisz pobrać nowszą wersję serwera Selenium, która obsługuje nowszą wersję przeglądarki Firefox.

Przyczyną Error: no display specifiedbłędu jest to, że Firefox jest uruchamiany, ale na zdalnym hoście nie ma serwera X (GUI). Możesz użyć przekazywania X11, aby uruchomić Firefoksa na zdalnym hoście, ale wyświetlić go na swoim lokalnym hoście. W systemie Mac OS X musisz pobrać XQuartz , aby korzystać z przekazywania X11.

Andrzej
źródło
13

Zanim zdecydujesz się na test z Selenium, musisz sprawdzić zgodność przeglądarki:

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

Może to pomóc odpowiedzieć na powyższe pytanie.

Viraj Pai
źródło
To był problem, który napotkałem. I to nie była przeglądarka w moim przypadku. To był podstawowy system operacyjny. Używam systemu Mac OS X - Yosemite. I wydaje się, że działa z nim tylko najnowszy selen.
Ajit S
2
link jest uszkodzony sir
mido
6

Rozwiązałem ten problem, obniżając moją wersję Firefoksa do starszej wersji, która wcześniej działała dobrze z Selenium-WebDriver. W moim przypadku musiałem wrócić do Firefoksa 18 i ta wersja działała z Selenium 2.27

Tutaj jest link do starszych wersji Firefoksa: https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/

GPS
źródło
5

Ten problem prześladuje mnie od dawna i widziałem, że jednym działającym rozwiązaniem w przypadku Firefoksa było użycie zaktualizowanego sterownika Firefox .

  • Jeśli aktualizacje Firefoksa są wykonywane automatycznie, od czasu do czasu możesz napotkać ten problem. Wygląda na to, że użytkownicy Firefoksa rozwijają się zbyt szybko lub nie dbają o wsteczną kompatybilność.

  • Za każdym razem, gdy widzę ten problem w moich starych skryptach, sprawdzam, czy wersja Firefoxa zmieniła się od tamtego czasu - w większości przypadków tak jest.

  • Następnie przechodzę do repozytorium Maven w celu pobrania repozytorium sterowników selenium firefox - http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver i pobieram najnowszą wersję.

  • lub zaktualizuj mój pom.xml (jeśli używany jest maven) o nową wersję sterownika Firefox teraz jego - 2.40.0

  • Nie ma łatwego sposobu na uniknięcie tego problemu, chyba że naprawdę wyraźnie zablokujesz automatyczną aktualizację z przeglądarki Firefox (Możesz to zrobić (na Macu) w preferencjach - Zaawansowane - Aktualizacja - Wybierz „Sprawdź aktualizacje, ale pozwól mi wybrać, czy je zainstalować” )

  • Jeśli Twoje skrypty działają w trybie automatycznym, możesz chcieć wyłączyć aktualizacje. Może to jednak spowodować inne problemy. Ponieważ większość ludzi / użytkowników może mieć domyślnie włączone aktualizacje Firefoksa. Twoja aplikacja nie jest więc tak naprawdę testowana w żadnych późniejszych wersjach.

software.wikipedia
źródło
5

Miałem Firefox 47 i Selenium 2.53 i otrzymałem ten sam błąd. Moim rozwiązaniem była zmiana Firefoksa 47 na Firefox 46 , problem został rozwiązany.

BrennQuin
źródło
4

Zaktualizuj słoiki z selenem, pobierz selen 2.31.0

Ten problem został rozwiązany przez facetów od selenu

To był problem ze zgodnością.

Twoje zdrowie

Prabhat
źródło
3

Problem ze skryptem polega na tym, że środowisko używane dla skryptu nie jest tym samym, co używane do testów, więc ustawienie zmiennych środowiskowych nie robi nic dla testów.

Aby poprawnie ustawić zmienną, musisz ustawić ją w Jenkinsie. Idź do Manage Jenkins> Manage Nodes> Master> Configure . Zaznacz pole wyboru Zmienne środowiskowe , a następnie wpisz DISPLAY w polu nazwy i ustaw wartość na: 1.0.

Dodatkowo musisz ustawić uprawnienia, spróbuj wyłączyć kontrolę dostępu xhost xhost +w terminalu.

aajenkins
źródło
1
To "xhost +" rozwiązało mój problem, polegający na tym, że uruchomienie webdrivera z sudo nie otwierało przeglądarki - teraz działa.
Nick Perkins
2

Ja też stanąłem przed tym samym problemem. Za każdym razem, gdy my lub webdriver otworzymy przeglądarkę FF, sprawdzimy dostępność aktualizacji. W takim przypadku spróbuję zaktualizować w czasie wykonywania, a wtedy pojawi się błąd, nawet jeśli jest on poprawnie zaktualizowany, tylko dlatego, że nie zaktualizowałeś odpowiednio wersji Selenium.

Przejdź do „ http://docs.seleniumhq.org/download/ ” i pobierz najnowszą wersję. Teraz idź i sprawdź, problem zostałby rzeczywiście rozwiązany. :)

Mani P
źródło
1

Mam ten sam błąd; Użyłem selenium-java w wersji 2.25.0 i Firefox vresion 18.0.2; Zmieniłem wersję selenium-java na 2.30.0 i teraz działa.

Radu L.
źródło
1

Aby rozwiązać ten problem, użyj nowych plików jar dostępnych na http://docs.seleniumhq.org/download/ . Odpowiednio do java, C #, php itp ... Firefox 27.0.1 wymaga 2.39.0 wersji sterownika.

Ankit K Gupta
źródło
U mnie działa również z przeglądarką Firefox 29.0 i sterownikiem selenu 2.39.0 (wcześniej miałem ten sam problem w lubuntu 14.0.4)
Huluvu424242
1

Po prostu zainstaluj wtyczkę Xvnc w Jenkins. Problem powinien zostać rozwiązany.

Tarique
źródło
1

Otrzymałem ten sam błąd „selenium_Unable to connect to host 127.0.0.1 na porcie 7055” Rozwiązanie: Użyłem selenium-java-2.48.2 z przeglądarką Firefox w wersji 43.0.1 i teraz działa dobrze.

Samir 007
źródło
1

Ja też miałem ten sam problem, ale problem został rozwiązany po obniżeniu wersji Firefoksa do 35.0.1, a moja wersja selenu to 2.43

SHAIK NAWAZ SHAREEF
źródło
1

Miałem dokładnie ten sam problem z uruchomieniem dockera, ale znalazłem rozwiązanie w dzienniku poprzedzającym wspomniany błąd.

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)

Postępowałem zgodnie z radą i problem został rozwiązany.

Krzysztof Dąbrowski
źródło
0

Tak to się zachowuje, gdy użyłem statycznej właściwości IWebDriver i wywołałem ją z wielu metod testowych.

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()
    {
        ...
    }

    ...
}

Lubić

 [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("Контакт"));
 }

Rozwiązanie

Dla każdego wywołania metod testowych utwórz nową instancję Driver

 private static void English()
 {
            var drv = Driver.Instance;
            var el = drv.FindElement(By.Id("mvc_lang_en"));
            el.Click();
 }
ZbynekSulc
źródło
0

Zaktualizuj słoiki selenu, jeśli nasz skrypt selenu nie jest wykonywany. Obecnie używam selenium-java-2.43.0-srcs

Teraz działa dobrze

swathi
źródło
0

Dzieje się tak na różnych wersjach ff. Używam najnowszej wersji FF 39, używając selenium-server-standalone-2.41.0.jar i selenium-java-2.41.0.zip, które pokazują ten sam błąd.

Pobierz najnowsze pliki serwera i klienta jar tutaj dla kompatybilności i używane wersje serwera i klienta 2.47.0 i 2.47.1 odpowiednio. I Bum! Zadziałało.

AHashmi
źródło
0

Dzieje się tak z powodu starych wersji. Po prostu zaktualizuj przeglądarkę do najnowszej wersji i zaktualizuj pakiet selenium webdriver do najnowszej wersji.

Prabu Ananthakrishnan
źródło
0

Po prostu uruchom ponownie terminal. Terminal wisi nic więcej. Po tym wszystko będzie dobrze działać

Sachin Mour
źródło
0

Dodawanie do bazy wiedzy. Ten sam problem mieliśmy w przypadku Bamboo. Problem został rozwiązany przy użyciu właściwości środowiskowych na Bamboo.

DISPLAY=":1"

Dodanie wartości jako właściwości systemowych w pom.xml lub w wierszu poleceń nie działało.

Basen
źródło
0

W systemie Windows: sprawdź również „bitowość” przeglądarki Firefox. Firefox 43.0.1 64-bitowy nie działa z Selenium 2.50.0. Działa dobrze z przeglądarką Firefox 43.0.1 32bit ...

Ivan
źródło
0

Ja też utknąłem z tym błędem przez trzy dni i w końcu to rozgryzłem. Możesz zobaczyć odpowiedź, którą udzieliłem tutaj: To jest problem ze zgodnością przeglądarki i serwera selenu. Mam nadzieję, że to pomoże. Możesz sprawdzić zgodność przeglądarki pod tym linkiem

sagar chapagain
źródło
0

Miałem dzisiaj ten sam problem. Aby to naprawić, obniżyłem wersję Firefoxa z 51 do 47 i działa.

Uwaga: używam Linux Ubuntu Mate w wirtualnym pudełku, a hostem jest inny Ubuntu Mate. Wszystkie systemy operacyjne są 64-bitowe, a także Firefox.

Topera
źródło
0

Zainstalowany Firefox Setup 18.0.exe, działa u mnie

Enayath Ali
źródło
0

Miałem ten sam problem z Firefoksem 38.

Po zastosowaniu następujących zależności wersji mogłem rozwiązać problem.

    <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> 
Udara Seneviratne
źródło
0

Myślę, że może to być problem z wyświetlaniem. Jeśli nie masz GUI w pudełku, to uruchomienie firefoxa z selenium webdriver dałoby ten błąd.

Aby rozwiązać ten problem, najpierw zainstaluj Xvfb [ yum install Xvfb -y] (sterownik ekranu wirtualnego) w pudełku. Następnie uruchom test od Jenkinsa z xvfv-run -a -d <your test execution command>. Spowoduje to uruchomienie przeglądarki w wirtualnym buforze wyświetlania. Jest również w stanie uzyskać zrzuty ekranu za pomocą webdrivera selenu.

Prasanta Biswas
źródło
-1

Rozwiązanie -

1) Uaktualnij swój serwer Selenium, tj. Słoik selenu "serwer-selenium-standalone-2.xx.x.JAR" TO "serwer-selenium-standalone-2.45.0.JAR"

2) Zaktualizuj swój sterownik klienta Selenium, tj. Folder selenium libs „selenium-java-2.xx.x” TO ”selenium-java-2.45.0”

3) Sprawdź i zainstaluj kompatybilną wersję przeglądarki Firefox

Odnieś - Pobierz zaktualizowane biblioteki selenium & jar tj. Wersja 2.45.0

To rozwiąże Twój problem. Pozdrawiam !!

NarendraC
źródło