2012-04-02 13 views
3

私はSelenium 2.20を使用しています。ブラウザを起動するとWebDriver InternetExplorerDriverがこの警告を表示するのはなぜですか?これは、パラメータ化されたJUnitテスト中に私に起こっています。この警告は、「新しいInternetExplorerDriver()」を呼び出すたびにスローされます。再試行した後、2回目の試行で成功します。つまり、IEインスタンスがWebDriverで動作する前に、tryExecute呼び出しを2回実行する必要があります。WebDriver InternetExplorerDriver:ソフトウェアによる接続の中止:recv failed?

org.apache.http.impl.client.DefaultRequestDirector tryExecute 
INFO: I/O exception (java.net.SocketException) caught when processing request: 
     Software caused connection abort: recv failed 
org.apache.http.impl.client.DefaultRequestDirector tryExecute 
INFO: Retrying request 
+0

は "2.2.0" タイプミスか、本物か? Seleniumをアップデートしてみませんか?何かがテストとIEの間の接続を積極的にブロックすることはできますか?結局のところ、それはソケット接続です...ファイアウォール、ウイルス対策? –

+0

申し訳ありませんが、2.20 – djangofan

+0

はい、セレニウムのバージョンは2.20 –

答えて

5

これは警告メッセージです。 IEドライバのネイティブコード(C++)コンポーネントにはHTTPサーバーが含まれています。これは、ドライバが通信にJSON Wire Protocolを使用するためです。そのHTTPサーバーは、開始してHTTP要求を受信する準備ができているのに少し時間がかかります。しかし、RemoteWebDriverのHTTPクライアント(InternetExplorerDriverRemoteWebDriverのサブクラスであることに注意してください)は、そのサーバーがいつ利用可能かを正確に知ることができないため、競合状態が発生します。 HTTPクライアントは、有効な応答を受け取るまでサーバーをポーリングする必要があります。この警告が表示されるときは、内部HTTPサーバーが初期化を完了しておらず、HTTPクライアントが競合を失ったということだけを伝えます。それは無害でなければならず、あなたはそれを安全に無視できるはずです。

+0

ありがとうございます。私はそれを疑ったが、あなたが提供した細部のすべてを知らなかった。どうもありがとう。 – djangofan

0

このメッセージは、それが知られている競合状態であるとして、ほとんどの場合のために重要であることを行っていないので、あなたは、このJavaコードを使用して、カスタムログ構成に渡すことによって、それを無視するのjava.util.loggingを構成することができます。

LogManager.getLogManager().readConfiguration(
    getClass().getResourceAsStream(
    "/META-INF/logger.properties")); 

およびファイルMETA-INF/logger.properties

handlers=java.util.logging.ConsoleHandler 
java.util.logging.ConsoleHandler.level=ALL 
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter 
org.apache.http.impl.client.DefaultHttpClient.level=WARNING 
関連する問題