Otrzymuję błąd podczas używania przeglądarki Firefox z WebDriver.
org.openqa.selenium.firefox.NotConnectedException: Unable to connect
to host 127.0.0.1 on port 7055 after 45000 ms.
- Wersja przeglądarki Firefox: 47.0.0
- Selen: 2,53,0
- Windows 10 w wersji 64-bitowej
Czy ktoś ma podobny problem lub jakiś pomysł, jakie jest na to rozwiązanie? Działa dobrze w przeglądarce Chrome, ale w przeglądarce Firefox żaden z adresów URL nie jest ładowany.
Odpowiedzi:
Niestety Selenium WebDriver 2.53.0 nie jest kompatybilny z Firefoksem 47.0. Komponent WebDriver, który obsługuje przeglądarki Firefox (
FirefoxDriver
), zostanie wycofany. Od wersji 3.0 Selenium WebDriver będzie potrzebował plikugeckodriver
binarnego do zarządzania przeglądarkami Firefox. Więcej informacji tutaj i tutaj .Dlatego, aby używać Firefoksa 47.0 jako przeglądarki z Selenium WebDriver 2.53.0, musisz pobrać sterownik Firefoksa (który jest plikiem binarnym o nazwie
geckodriver
od wersji 0.8.0 i dawniejwires
) i wyeksportować jego bezwzględną ścieżkę do zmiennejwebdriver.gecko.driver
jako właściwość systemowa w kodzie Java:Na szczęście biblioteka WebDriverManager może wykonać tę pracę za Ciebie, tj. Pobrać odpowiedni plik binarny Marionette dla Twojej maszyny (Linux, Mac lub Windows) i wyeksportować wartość odpowiedniej właściwości systemu. Aby użyć tej biblioteki, musisz uwzględnić tę zależność w swoim projekcie:
... a następnie wykonaj tę linię w swoim programie przed użyciem WebDriver:
Kompletny działający przykład przypadku testowego JUnit 4 przy użyciu WebDriver mógłby wyglądać następująco:
Weź pod uwagę, że Marionette będzie jedyną opcją na przyszłość (dla WebDriver 3+ i Firefox 48+), ale obecnie (wersja 0.9.0 w momencie pisania) nie jest zbyt stabilna. Zapoznaj się z mapą drogową Marionette, aby uzyskać więcej informacji.
AKTUALIZACJA
Selenium WebDriver 2.53.1 został wydany 30 czerwca 2016 r.
FirefoxDriver
Ponownie współpracuje z przeglądarką Firefox 47.0.1 .źródło
C:\Windows\system32>netstat -ano | find "7055" TCP 127.0.0.1:2896 127.0.0.1:7055 SYN_SENT 2052
Spróbuj użyć przeglądarki Firefox 46.0.1. Najlepiej pasuje do Selenium 2.53
źródło
Miałem ten sam problem i okazało się, że musisz zmienić sterowniki, ponieważ wsparcie zostało przerwane . Zamiast korzystać ze sterownika Firefox , musisz użyć sterownika Marionette , aby uruchomić testy. Obecnie sam pracuję nad konfiguracją i mogę opublikować kilka sugerowanych kroków, jeśli chcesz, gdy mam działający przykład.
Oto kroki, które wykonałem, aby to działało w moim środowisku Java na Macu (działało dla mnie również w moich instalacjach Linuksa (Fedora, CentOS i Ubuntu)):
mkdir -p /opt/marionette
)$PATH
aby zawierał plik wykonywalny (również edytuj,.bash_profile
jeśli chcesz)chmod +x /opt/marionette/wires-x.x.x
że jest to plik wykonywalnyKrótka notatka
Nadal nie działa zgodnie z oczekiwaniami, ale przynajmniej uruchamia przeglądarkę teraz. Muszę dowiedzieć się, dlaczego - teraz wygląda na to, że muszę przepisać moje testy, aby działały.
Fragment Java
źródło
Jeśli korzystasz z systemu OSX i korzystasz z Homebrew, możesz zainstalować stare wersje Firefoksa za pomocą beczki zaparzającej:
Po zainstalowaniu wystarczy zmienić nazwę pliku wykonywalnego FF w katalogu Aplikacje na „Firefox”.
Więcej informacji można znaleźć w repozytorium git homebrew-firefox . Rekwizyty do smclernon za stworzenie oryginalnej beczki .
źródło
Jeśli korzystasz z komputera Mac, rób
brew install geckodriver
i ruszaj!źródło
Na wypadek, gdyby ktoś się zastanawiał, jak używać Marionette w C #.
Zastępowanie FirefoxOptions w celu udostępnienia funkcji dodania dodatkowych możliwości i ustawienia profilu Firefoksa, ponieważ selenium v53 nie zapewnia jeszcze tej funkcji.
Uwaga: uruchomienie z profilem nie działa z FF 47, działa z FF 50 Nightly.
Próbowaliśmy jednak przekonwertować nasz test na Marionette i obecnie nie jest to możliwe, ponieważ implementacja sterownika nie została zakończona lub zawiera błędy. Sugerowałbym teraz, aby ludzie obniżyli wersję ich Firefoksa.
źródło
Nowe biblioteki Selenium są już niedostępne, zgodnie z: https://github.com/SeleniumHQ/selenium/issues/2110
Strona pobierania http://www.seleniumhq.org/download/ wydaje się nie być jeszcze zaktualizowana, ale dodając 1 do wersji pomocniczej w linku, mogłem pobrać wersję C #: http: // selenium-release. storage.googleapis.com/2.53/selenium-dotnet-2.53.1.zip
U mnie działa z przeglądarką Firefox 47.0.1.
Na marginesie, mogłem zbudować tylko rozszerzenie webdriver.xpi do przeglądarki Firefox z głównej gałęzi w GitHub, uruchamiając
./go //javascript/firefox-driver:webdriver:run
- co spowodowało komunikat o błędzie, ale zbudowało plik build / javascript / firefox-driver / webdriver.xpi , który ja można zmienić nazwę (aby uniknąć konfliktu nazw) i pomyślnie załadować za pomocą metody FirefoxProfile.AddExtension. To było rozsądne obejście, bez konieczności przebudowywania całej biblioteki Selenium.źródło
To wydanie FF47 https://github.com/SeleniumHQ/selenium/issues/2110
Zmień wersję na FF 46 lub niższą (lub wypróbuj programistę FF48 https://developer.mozilla.org/en-US/Firefox/Releases/48 )
Instrukcje dotyczące obniżania wersji: https://www.liberiangeek.net/2012/04/how-to-install-previous-versions-of-firefox-in-ubuntu-12-04-precise-pangolin/ Lub jeśli jesteś na Macu, jak zasugerował ktoś inny w tym wątku, użyj naparu.
źródło
Firefox 47.0 przestał działać z Webdriverem.
Najłatwiejszym rozwiązaniem jest przejście na Firefox 47.0.1 i Webdriver 2.53.1. Ta kombinacja znowu działa. W rzeczywistości przywrócenie zgodności z Webdriver było głównym powodem wydania 47.0.1, zgodnie z https://www.mozilla.org/en-US/firefox/47.0.1/releasenotes/ .
źródło
Możesz spróbować użyć tego kodu,
Zaktualizowałem selenium do 3.0.0, a wersja Firefox to 49.0.1
Możesz pobrać geckodriver.exe z https://github.com/mozilla/geckodriver/releases
Upewnij się, że pobierasz tylko plik zip, plik geckodriver-v0.11.1-win64.zip lub plik win32 zgodnie z systemem i rozpakuj go do folderu.
Umieść ścieżkę do tego folderu w cudzysłowie „Twoja ścieżka do sterownika”. Nie zapomnij umieścić w ścieżce geckodriver.exe.
źródło
W końcu zainstalowałem dodatkową starą wersję Firefoksa (używaną tylko do testów), aby rozwiązać ten problem, oprócz mojej zwykłej (bezpiecznej, aktualnej) najnowszej instalacji Firefoksa.
To wymaga, aby webdriver wiedział, gdzie może znaleźć plik binarny przeglądarki Firefox, który można ustawić za pomocą
webdriver.firefox.bin
właściwości.To, co zadziałało dla mnie (Mac, Maven,
/tmp/ff46
jako folder instalacyjny) to:Aby zainstalować starą wersję Firefoksa w dedykowanym folderze, utwórz folder, otwórz Finder w tym folderze, pobierz plik dmg Firefoksa i przeciągnij go do tego Findera.
źródło
Oto jak problem wyglądał w Wireshar k
Po prostu załaduj 2.53.1 i wszystko będzie działać.
źródło
Stan na wrzesień 2016 r
Firefox 48.0
iselenium==2.53.6
działa dobrze bez żadnych błędówAby zaktualizować tylko Firefoxa
Ubuntu 14.04
źródło
Wydaje mi się, że najlepszym rozwiązaniem jest aktualizacja do Selenium 3.0.0, pobranie geckodriver.exe i użycie przeglądarki Firefox 47 lub nowszej.
Zmieniłem inicjalizację Firefoksa na:
źródło
Mogę potwierdzić, że
selenium 2.53.6
działafirefox 44
w moim przypadku na Ubuntu 15.źródło