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.0
kiedy 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)
Odpowiedzi:
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.
źródło
Miałem podobny problem. Może ta odpowiedź również ci pomoże.
Wygląda na to, że masz dwa różne błędy:
Unable to connect to host 127.0.0.1 on port 7055
Error: no display specified
Powodem
Unable to connect
błę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 specified
błę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.źródło
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.
źródło
Pobierz najnowsze słoiki Selenium (2.30) dla FireFox 19
Możesz pobrać najnowsze słoiki (2.31 w chwili pisania) tutaj: https://code.google.com/p/selenium/downloads/list
źródło
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/
źródło
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.
źródło
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.
źródło
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
źródło
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.źródło
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. :)
źródło
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.
źródło
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.
źródło
Po prostu zainstaluj wtyczkę Xvnc w Jenkins. Problem powinien zostać rozwiązany.
źródło
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.
źródło
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
źródło
Miałem dokładnie ten sam problem z uruchomieniem dockera, ale znalazłem rozwiązanie w dzienniku poprzedzającym wspomniany błąd.
Postępowałem zgodnie z radą i problem został rozwiązany.
źródło
Tak to się zachowuje, gdy użyłem statycznej właściwości IWebDriver i wywołałem ją z wielu metod testowych.
Lubić
Rozwiązanie
Dla każdego wywołania metod testowych utwórz nową instancję Driver
źródło
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
źródło
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.
źródło
Dzieje się tak z powodu starych wersji. Po prostu zaktualizuj przeglądarkę do najnowszej wersji i zaktualizuj pakiet selenium webdriver do najnowszej wersji.
źródło
Po prostu uruchom ponownie terminal. Terminal wisi nic więcej. Po tym wszystko będzie dobrze działać
źródło
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.
Dodanie wartości jako właściwości systemowych w pom.xml lub w wierszu poleceń nie działało.
źródło
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 ...
źródło
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
źródło
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.
źródło
Zainstalowany Firefox Setup 18.0.exe, działa u mnie
źródło
Miałem ten sam problem z Firefoksem 38.
Po zastosowaniu następujących zależności wersji mogłem rozwiązać problem.
źródło
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 zxvfv-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.źródło
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 !!
źródło