web-dev-qa-db-ja.com

45000以内にソケットを起動できませんでした

FFバージョン19を使用しています

昨日まではすべて正常に機能していましたが、今日の朝に突然このエラーが発生し始めました。以前に実行していたのとまったく同じコードがあり、何も変更されていません。

エラーメッセージ:

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).

これが私のソースコードです:

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;
        }
17
Nick Kahn

Firefox 19の「サポート」は、Seleniumの最新バージョンで追加されました。したがって、.NETを使用しているため、最新の直接ダウンロードこの投稿の時点はバージョン2.31.2です。

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

18
Arran

Firefox43とSelenium2.48でこの問題が発生します。これは、Seleniumドライバーサーバーが32ビットプロセスで実行されていて、64ビットバージョンのFirefoxを起動したときに発生します。

原因は、Webdriverサーバーがポート7055に接続しようとしたためです。このポートは、Firefox実行可能ファイルで実行されているWebDriverによって開かれる必要があります。しかし、www.sysinternals.comのTcpViewで、Firefoxがこのポートを開かないことがわかります。したがって、ドライバーはタイムアウト(45秒)が経過するまで待機します。

これは、Windowsファイアウォールを完全にオフにした後でも発生します。

インターネットで見つけたすべての投稿は役に立ちません:Seleniumのアップグレード、Firefoxのダウングレードなど。

しかし、同じFirefox 43の32ビットバージョンをインストールした後、それは機能します。 TcpViewで、Firefox32ビットがポートを正しく開く方法を確認します。

Firefox Selenium webdriver Port 7055

私のコードでは

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

_sBrowserExe = "C:\Program Files\Mozilla Firefox 43\firefox.exe"_を使用すると、Firefox 43の64ビットバージョンが起動し、タイムアウト例外が発生します。

sBrowserExe = "C:\Program Files (x86)\Mozilla Firefox 43\firefox.exe"を使用すると、Firefox 43の32ビットバージョンが起動し、動作します。


UPDATE:Firefoxの開発者はSeleniumのサポートを完全に破りました。 48以降の新しいFirefoxバージョンでは、すべての拡張機能をインストールするためにデジタル署名が必要です。

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

私が理解していないのは、Seleniumの人々が現在のSeleniumドライバーの署名を取得できない理由です。

Firefoxバージョン47.0には、Seleniumでの使用を許可しないバグがあります。このバグはバージョン47.0.1で修正されています。

48.0以降のFirefoxバージョンでは、古いSeleniumドライバーはインストールされなくなりました。それらはMarionette(= Gecko)ドライバーで自動化する必要があります。

問題は、Marionetteがまだベータ版であり、多くの機能が不足しているため、Firefoxの新しいバージョンを自動化するソリューションが現在ないことです。

ここに表示されているように、新しいドライバーにはバグがたくさんあります: https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver/status

6
Elmue

Webdriverをアップグレードしても問題が解決しない場合は、FireFoxをダウングレードして問題を解決できます。

4

どのバージョンのSelenium IDEを使用していますか?Firefoxバージョンをダウングレードしてみてください。SeleniumIDEのリリースノートは、以下のリンクに記載されています。

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

お役に立てれば。

1
Naren

Nugetパッケージマネージャーにすべての更新プログラムをインストールします。 IDEを再起動します。

Firefoxバージョンのダウングレードはテストにはお勧めしません。しかし、最後の1つのバージョンのダウングレードは良さそうです。

この解決策は私のために働いた。

0
A user