2012-01-26 22 views
1

Selenium 0.9.xを2.17にアップグレードしました。私は、新しいWebドライバを使用するコードを変更するには周りにもらっていないので、私のテストが終了すると、我々はまだSeleniumクライアントは終了しません

BrowserConfigurationOptions options = new BrowserConfigurationOptions(); 
options.setSingleWindow(); 
options.setCommandLineFlags("-trustAllSSLCertificates"); 

seleniumClient = new DefaultSelenium("localhost", "4444", "*iexplore", "http://localhost:8080/myapp/); 
seleniumClient.start(options); 

を使用している、私はその後どうなり

seleniumClient.stop(); 

を呼び出すことですSeleniumクライアントは、次の2つのコマンドを受け取ります。

selectWindow() 
open(http://localhost:8080)</code></pre> 

最後に、ブラウザウィンドウは開いたままになり、tomcatサーバーから404メッセージが表示されます。 stop()コマンドは、HttpCommandProcessorが 'testComplete'を送信するようにします。これにより、上記の2つのコマンドをSeleniumサーバーに渡すことになります。

ここでは、Seleniumのログ出力を以下に貼り付けておきます。何とかソケット接続がうまくいかないようです。私は「selectWindow」と「開く」コマンドがある、だから、

Command request: testComplete.. here the 'testComplete' from the stop() 
... 
data from polling: json={command:"selectWindow",target:"",value:""} 
... 
putting command: json={command:"open",target:"http://localhost:8080",value:""} 
... 
waiting for data for at most 10 more s 

を見たが、その後の接続が10秒のために、再試行を発行待ちます。これはどういうことですか?私はブラウザを閉じるだけです。

おかげサイモン

26-01-12 12:14 PM INFO {SocketListener0-1} Command request: testComplete[, ] on session d76953d2f181468cab5eba9a382b6e99 
26-01-12 12:14 PM FINE {SocketListener0-1} resetting frame group 
26-01-12 12:14 PM FINE {SocketListener0-1} ---------retrieving CommandQueue for sel_86748 
26-01-12 12:14 PM FINE {SocketListener0-1}  sel_86748 commandHolder sel_86748 getCommand() 
26-01-12 12:14 PM FINE {SocketListener0-1} putting command: json={command:"selectWindow",target:"",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-1} ..command put?: true 
26-01-12 12:14 PM FINE {SocketListener0-0} data from polling: json={command:"selectWindow",target:"",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-1}  sel_86748 commandResultHolder sel_86748 getResult() called 
26-01-12 12:14 PM FINE {SocketListener0-0}  sel_86748 commandHolder sel_86748 getCommand() -> json={command:"selectWindow",target:"",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-1} waiting for data for at most 1800 more s 
26-01-12 12:14 PM FINE {SocketListener0-0} res to sel_86748: json={command:"selectWindow",target:"",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-0} Handled by org.openqa.selenium.server.SeleniumDriverResourceHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINEST {SocketListener0-0} resetStream() 
26-01-12 12:14 PM FINE {SocketListener0-0} RESPONSE: 
HTTP/1.1 200 OK 
Date: Thu, 26 Jan 2012 11:14:20 GMT 
Server: Jetty/5.1.x (Windows 7/6.1 amd64 java/1.6.0_22 
Cache-Control: no-cache 
Pragma: no-cache 
Expires: Thu, 01 Jan 1970 00:00:00 GMT 
Content-Type: text/plain 
Content-Length: 1048 


26-01-12 12:14 PM FINE {SocketListener0-0} REQUEST from [email protected]:4444: 
POST /selenium-server/driver/?&localFrameAddress=top&seleniumWindowName=&uniqueId=sel_86748&sessionId=d76953d2f181468cab5eba9a382b6e99&counterToMakeURsUniqueAndSoStopPageCachingInTheBrowser=1327576460834&sequenceNumber=102 HTTP/1.1 
Accept: */* 
UA-CPU: AMD64 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; .NET4.0E) 
Host: localhost:4444 
Content-Length: 13 
Connection: keep-alive 
Cache-Control: no-cache 


26-01-12 12:14 PM FINEST {SocketListener0-0} Contexts at /selenium-server/driver/: [/selenium-server/driver/*=[HttpContext[/selenium-server/driver,/selenium-server/driver]], /selenium-server/*=[HttpContext[/selenium-server,/selenium-server]], /=[HttpContext[/,/]]] 
26-01-12 12:14 PM FINE {SocketListener0-0} Try HttpContext[/selenium-server/driver,/selenium-server/driver],0 
26-01-12 12:14 PM FINE {SocketListener0-0} Try HttpContext[/selenium-server,/selenium-server],0 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.jetty.http.handler.SecurityHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.selenium.server.StaticContentHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} PATH=/driver/ RESOURCE=file:/E:/Development/_umbrella/webtest2/MISSING%20RESOURCE 
26-01-12 12:14 PM FINE {SocketListener0-0} Looking for file:/E:/Development/_umbrella/webtest2/MISSING%20RESOURCE 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.selenium.server.SessionExtensionJsHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.selenium.server.htmlrunner.SingleTestSuiteResourceHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.ope[email protected]669a4cb 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler [email protected] 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.selenium.server.SeleniumDriverResourceHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} req: POST /selenium-server/driver/?&localFrameAddress=top&seleniumWindowName=&uniqueId=sel_86748&sessionId=d76953d2f181468cab5eba9a382b6e99&counterToMakeURsUniqueAndSoStopPageCachingInTheBrowser=1327576460834&sequenceNumber=102 HTTP/1.1 
Accept: */* 
UA-CPU: AMD64 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; .NET4.0E) 
Host: localhost:4444 
Content-Length: 13 
Connection: keep-alive 
Cache-Control: no-cache 


26-01-12 12:14 PM FINE {SocketListener0-0} ---------retrieving CommandQueue for sel_86748 
26-01-12 12:14 PM FINE {SocketListener0-0} Browser d76953d2f181468cab5eba9a382b6e99/:top sel_86748 posted OK 
26-01-12 12:14 PM FINE {SocketListener0-0} ---------retrieving CommandQueue for sel_86748 
26-01-12 12:14 PM FINE {SocketListener0-0} putting command: OK 
26-01-12 12:14 PM FINE {SocketListener0-0} ..command put?: true 
26-01-12 12:14 PM FINE {SocketListener0-1} data from polling: OK 
26-01-12 12:14 PM FINE {SocketListener0-0}  sel_86748 commandHolder sel_86748 getCommand() called 
26-01-12 12:14 PM FINE {SocketListener0-1}  sel_86748 commandResultHolder sel_86748 getResult() -> OK 
26-01-12 12:14 PM FINE {SocketListener0-0} waiting for data for at most 10 more s 
26-01-12 12:14 PM FINE {SocketListener0-1} ---------retrieving CommandQueue for sel_86748 
26-01-12 12:14 PM FINE {SocketListener0-1}  sel_86748 commandHolder sel_86748 getCommand() 
26-01-12 12:14 PM FINE {SocketListener0-1} putting command: json={command:"open",target:"http://localhost:8080",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-1} ..command put?: true 
26-01-12 12:14 PM FINE {SocketListener0-0} data from polling: json={command:"open",target:"http://localhost:8080",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-1}  sel_86748 commandResultHolder sel_86748 getResult() called 
26-01-12 12:14 PM FINE {SocketListener0-0}  sel_86748 commandHolder sel_86748 getCommand() -> json={command:"open",target:"http://localhost:8080",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-1} waiting for data for at most 1800 more s 
26-01-12 12:14 PM FINE {SocketListener0-0} res to sel_86748: json={command:"open",target:"http://localhost:8080",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-0} Handled by org.openqa.selenium.server.SeleniumDriverResourceHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINEST {SocketListener0-0} resetStream() 
26-01-12 12:14 PM FINE {SocketListener0-0} RESPONSE: 
HTTP/1.1 200 OK 
Date: Thu, 26 Jan 2012 11:14:20 GMT 
Server: Jetty/5.1.x (Windows 7/6.1 amd64 java/1.6.0_22 
Cache-Control: no-cache 
Pragma: no-cache 
Expires: Thu, 01 Jan 1970 00:00:00 GMT 
Content-Type: text/plain 
Content-Length: 1061 


26-01-12 12:14 PM FINE {SocketListener0-0} REQUEST from [email protected]:4444: 
POST /selenium-server/driver/?&localFrameAddress=top&seleniumWindowName=&uniqueId=sel_86748&sessionId=d76953d2f181468cab5eba9a382b6e99&counterToMakeURsUniqueAndSoStopPageCachingInTheBrowser=1327576461138&sequenceNumber=103 HTTP/1.1 
Accept: */* 
UA-CPU: AMD64 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; .NET4.0E) 
Host: localhost:4444 
Content-Length: 13 
Connection: keep-alive 
Cache-Control: no-cache 


26-01-12 12:14 PM FINEST {SocketListener0-0} Contexts at /selenium-server/driver/: [/selenium-server/driver/*=[HttpContext[/selenium-server/driver,/selenium-server/driver]], /selenium-server/*=[HttpContext[/selenium-server,/selenium-server]], /=[HttpContext[/,/]]] 
26-01-12 12:14 PM FINE {SocketListener0-0} Try HttpContext[/selenium-server/driver,/selenium-server/driver],0 
26-01-12 12:14 PM FINE {SocketListener0-0} Try HttpContext[/selenium-server,/selenium-server],0 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.jetty.http.handler.SecurityHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.selenium.server.StaticContentHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} PATH=/driver/ RESOURCE=file:/E:/Development/_umbrella/webtest2/MISSING%20RESOURCE 
26-01-12 12:14 PM FINE {SocketListener0-0} Looking for file:/E:/Development/_umbrella/webtest2/MISSING%20RESOURCE 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.selenium.server.SessionExtensionJsHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.selenium.server.htmlrunner.SingleTestSuiteResourceHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.ope[email protected]669a4cb 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler [email protected] 
26-01-12 12:14 PM FINE {SocketListener0-0} Handler org.openqa.selenium.server.SeleniumDriverResourceHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINE {SocketListener0-0} req: POST /selenium-server/driver/?&localFrameAddress=top&seleniumWindowName=&uniqueId=sel_86748&sessionId=d76953d2f181468cab5eba9a382b6e99&counterToMakeURsUniqueAndSoStopPageCachingInTheBrowser=1327576461138&sequenceNumber=103 HTTP/1.1 
Accept: */* 
UA-CPU: AMD64 
Accept-Encoding: gzip, deflate 
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; .NET4.0C; .NET4.0E) 
Host: localhost:4444 
Content-Length: 13 
Connection: keep-alive 
Cache-Control: no-cache 


26-01-12 12:14 PM FINE {SocketListener0-0} ---------retrieving CommandQueue for sel_86748 
26-01-12 12:14 PM FINE {SocketListener0-0} Browser d76953d2f181468cab5eba9a382b6e99/:top sel_86748 posted OK 
26-01-12 12:14 PM FINE {SocketListener0-0} ---------retrieving CommandQueue for sel_86748 
26-01-12 12:14 PM FINE {SocketListener0-0} putting command: OK 
26-01-12 12:14 PM FINE {SocketListener0-0} ..command put?: true 
26-01-12 12:14 PM FINE {SocketListener0-1} data from polling: OK 
26-01-12 12:14 PM FINE {SocketListener0-0}  sel_86748 commandHolder sel_86748 getCommand() called 
26-01-12 12:14 PM FINE {SocketListener0-1}  sel_86748 commandResultHolder sel_86748 getResult() -> OK 
26-01-12 12:14 PM FINE {SocketListener0-0} waiting for data for at most 10 more s 
26-01-12 12:14 PM INFO {SocketListener0-1} Got result: OK on session d76953d2f181468cab5eba9a382b6e99 
26-01-12 12:14 PM FINE {SocketListener0-1} Handled by org.openqa.selenium.server.SeleniumDriverResourceHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINEST {SocketListener0-1} resetStream() 
26-01-12 12:14 PM FINE {SocketListener0-1} RESPONSE: 
HTTP/1.1 200 OK 
Date: Thu, 26 Jan 2012 11:14:20 GMT 
Server: Jetty/5.1.x (Windows 7/6.1 amd64 java/1.6.0_22 
Cache-Control: no-cache 
Pragma: no-cache 
Expires: Thu, 01 Jan 1970 00:00:00 GMT 
Content-Type: text/plain 
Content-Length: 2 


26-01-12 12:14 PM WARNING {testAutocomplete.html} Single file runner completed for: testAutocomplete.html 
26-01-12 12:14 PM WARNING {watchprogress-159485824} Finished watching progress 
26-01-12 12:14 PM FINEST {SocketListener0-1} EXCEPTION 
26-01-12 12:14 PM FINEST {SocketListener0-1} null 
26-01-12 12:14 PM FINE {SocketListener0-0} data from polling: null 
26-01-12 12:14 PM FINE {SocketListener0-0}  sel_86748 commandHolder sel_86748 getCommand() -> json={command:"retryLast",target:"",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-0} res to sel_86748: json={command:"retryLast",target:"",value:""} 
26-01-12 12:14 PM FINE {SocketListener0-0} Handled by org.openqa.selenium.server.SeleniumDriverResourceHandler in HttpContext[/selenium-server,/selenium-server] 
26-01-12 12:14 PM FINEST {SocketListener0-0} resetStream() 
26-01-12 12:14 PM FINE {SocketListener0-0} RESPONSE: 
HTTP/1.1 200 OK 
Date: Thu, 26 Jan 2012 11:14:21 GMT 
Server: Jetty/5.1.x (Windows 7/6.1 amd64 java/1.6.0_22 
Cache-Control: no-cache 
Pragma: no-cache 
Expires: Thu, 01 Jan 1970 00:00:00 GMT 
Content-Type: text/plain 
Content-Length: 1045 

補遺(2012年3月15日):

それはSeleniumServer上RemoteControlConfigurationこの動作を引き起こしていたことが判明:

cfg.setReuseBrowserSessions(false); 

は、それを解決しました。サーバーはブラウザを開いたままにして、次のテストが来るのを待っていたようです。私は、すべてのテストが実行された後にクライアント/サーバーを閉じる "正しい"方法があると確信していますが、ブラウザセッションを再利用するテストは必要ありません。

答えて

0

SeleniumServerを開始するときに原因がtrueに

RemoteControlConfiguration#setReuseBrowserSessions() 

を設定しました。そのプロパティをfalseに設定すると、すべてのブラウザインスタンスが正常に終了し、すべて正常に動作しました。

サイモン

0

代わりにIEWebDriverを使用して、これに対してQuit()メソッドを呼び出すことはできませんか?

WebDriver driver = new InternetExplorerDriver(); 
// your code 
driver.Quit(); 
+0

私は今webdriverを使用するように私のコードを書き換えるには消極的だが、私はこのてみました: seleniumClient =新しいWebDriverBackedSelenium(新InternetExplorerDriver()、ドメイン)。 「Internet Explorerを起動する際に予期しないエラーが発生しました。保護モードをすべてのゾーンで同じ値(有効または無効)に設定する必要があります。私はその方向に向かって新しいパンドラの箱を開けているようだ。 – Simon

+0

以下を追加してみてください: DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer(); ieCapabilities.setCapability(InternetExplorerDriver。)。INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS、true); WebDriverドライバ=新しいInternetExplorerDriver(ieCapabilities); また、ここのアドバイスに従って、レジストリ設定を変更することもできます: http://code.google.com/p/selenium/issues/detail?id=1795 – Scott

+0

IEの機能を追加した後は、さまざまなJSエラーが発生します。テストを実行する(Pandora's box !!)。しかし、ブラウザは最後に終了します。 InternetExplorerDriverは、ブラウザを閉じることを管理する DELETE/session/89172483-8591-4179-be7d-63cc8587d817 HTTP/1.1 を送信します。従来のDefaultSeleniumに同じことを納得させることができるかどうかがわかります。 – Simon

関連する問題