2013-03-06 14 views
17

Używam FF w wersji 19Nie udało się uruchomić gniazdo wewnątrz 45000

to wszystko działa bez zarzutu aż nagle wczoraj i dzisiaj rano i zacząć ten błąd i mam dokładnie taki sam kod, który został uruchomiony wcześniej, nie zmienić nic

komunikat o błędzie:

Test 'M:.TestCases.12' failed: Failed to start up socket within 45000 
    OpenQA.Selenium.WebDriverException: Failed to start up socket within 45000 
    at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.ConnectToBrowser(Int64 timeToWaitInMilliSeconds) 
    at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() 
    at OpenQA.Selenium.Firefox.FirefoxDriver.StartClient() 
    at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) 
    at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxBinary binary, FirefoxProfile profile, TimeSpan commandTimeout) 
    at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxBinary binary, FirefoxProfile profile) 
    at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxProfile profile) 

0 passed, 1 failed, 0 skipped, took 145.80 seconds (Ad hoc). 

tutaj jest mój kod źródłowy:

public static IWebDriver GetDriver() 
     { 
      switch (Common.BrowserSelected) 
      { 
       case "ff": 
        FirefoxProfile profile = new FirefoxProfile(); 
        profile.SetPreference("network.http.phishy-userpass-length", 255); 
        profile.SetPreference("network.automatic-ntlm-auth.trusted-uris", url); 
        drv = new FirefoxDriver(profile); 
        break; 
       case "ie": 
        var options = new InternetExplorerOptions(); 
        options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 
        DesiredCapabilities capabilities = new DesiredCapabilities(); 
        capabilities.SetCapability(CapabilityType.AcceptSslCertificates, true); 
        drv = new InternetExplorerDriver(options); 
        break; 
       case "chrome": 
        //_driver = new ChromeDriver(); 
        break; 
      } 
      return drv; 
     } 
+0

Być może przeglądarka Firefox została zaktualizowana? – Hemanth

+0

ff 19 jest najnowszym, więc nie jestem pewien –

+0

Jakiej wersji Selenium używasz? Wiem, że do najnowszej wersji miał problemy z Firefoksem. – Arran

Odpowiedz

18

Firefox 19 'support' został dodany w najnowszych wersjach Selenium. Więc skoro używasz .NET, bezpośredni odsyłacz do najnowszej w czasie tego postu jest wersja 2.31.2:

selenium-release.storage.googleapis.com/index.html

+0

Teraz pobierz najnowsze wersje: http://selenium-release.storage.googleapis.com/index.html – phabtar

+0

Nie rozwiąże to problemu. Mam taki sam wyjątek timeout nawet z Selenium 2.48. – Elmue

+3

Niezbyt dobry pomysł: jest to trzeci wynik wyszukiwania przez Google komunikatu o błędzie dotyczącego abover. Wielu ludzi przyjdzie tutaj i przeczyta to. – Elmue

1

Która wersja Selenium IDE używasz? Spróbuj zmienić wersję przeglądarki Firefox. Uwagi do wydania selenu IDE są wymienione w poniższym linku.

https://code.google.com/p/selenium/wiki/SeIDEReleaseNotes

Nadzieja to pomaga.

+2

Chodzi o to, aby przetestować najnowszą wersję Firefoksa. Obniżenie poziomu Firefoksa NIE jest rozwiązaniem! – Elmue

4

Jeśli uaktualnienie programu Webdriver nie pomoże, możesz obniżyć wersję FireFox, która rozwiąże problem.

+1

Chodzi o to, aby przetestować najnowszą wersję Firefoksa. Obniżenie poziomu Firefoksa NIE jest rozwiązaniem! – Elmue

6

Mam ten problem z przeglądarką Firefox 43 i Selenium 2.48. Zdarza się, gdy serwer sterownika Selenium działa w procesie 32-bitowym i uruchamiasz 64-bitową wersję przeglądarki Firefox.

Powodem jest to, że serwer webdriver próbuje połączyć się z portem 7055, który powinien zostać otwarty przez webdriver, który działa w pliku wykonywalnym Firefox. Ale można zobaczyć w TcpView z www.sysinternals.com, że Firefox nie otwiera tego portu. Zatem kierowca czeka, aż upłynie jego czas oczekiwania (45 sekund).

Zdarza się to nawet po całkowitym wyłączeniu Zapory systemu Windows.

Wszystkie posty, które znalazłem w internecie nie pomagają: Upgrade selen, downgrade Firefox, etc ..

Ale po zainstalowaniu wersji 32 bitowej samego Firefoksa 43 działa. Widzę w TCPView jak Firefox 32 bit otwiera poprawnie portu:

Firefox Selenium webdriver Port 7055

W moim kodu używam

FirefoxProfile Prof = new FirefoxProfile(); 
FirefoxBinary Bin = new FirefoxBinary(sBrowserExe); 
mDriver = new FirefoxDriver(Bin, Prof); 

Z sBrowserExe = "C:\Program Files\Mozilla Firefox 43\firefox.exe" wersja 64 bitowa Firefox 43 jest uruchomiony i otrzymuję wyjątek timeout.

Z sBrowserExe = "C:\Program Files (x86)\Mozilla Firefox 43\firefox.exe" uruchamiana jest 32-bitowa wersja przeglądarki Firefox 43 i działa!


UPDATE: Twórcy z Firefoksa teraz złamał wsparcie selen końca.Nowe wersje Firefoksa od 48 wzwyż wymagają podpisu cyfrowego do zainstalowania wszystkich rozszerzeń.

https://wiki.mozilla.org/Addons/Extension_Signing

Co ja nie rozumiem, dlaczego ludzie selen nie może uzyskać podpisu dla bieżącego sterownika Selen ??

Firefox w wersji 47.0 zawiera błąd, który nie pozwala używać go z Selenium. Ten błąd został naprawiony w wersji 47.0.1.

Wersje Firefoksa od wersji 48.0 i wyższej nie instalują już starego sterownika Selenium. Należy je zautomatyzować za pomocą sterownika Marionette (= Gecko).

Problem polega na tym, że Marionetka nadal jest w wersji beta i ma wiele brakujących funkcji, więc obecnie nie ma rozwiązania pozwalającego zautomatyzować nowe wersje Firefoksa.

Jak widać tutaj nowy sterownik jest pełen błędów: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver/status

+0

Używam firefox 48, 32-bitowy na maszynie Windows 7, 64-bitowy. Nadal dostaję błąd, o którym wspomniałeś. Jednak w TCPView, firefox nie otwiera portu 7055. Proszę zasugerować, jak mogę to naprawić. – testerjoe2

+0

Zaktualizowałem swoją odpowiedź, aby odpowiedzieć na twoje pytanie. – Elmue

0

zainstalować wszystkie aktualizacje w menedżerze pakietów Nuget. Zrestartuj IDE.

Obniżenie poziomu wersji firefox nie jest zalecane do testowania. Ale w ostatniej wersji downgrade brzmi dobrze.

To rozwiązanie sprawdziło się u mnie.

Powiązane problemy