2

selenium-rcとpearのseleniumPHPAPI(phpスクリプトを実行テストは、リモート制御されたウィンドウと同じローカルネットワーク上のアプリサーバー上にあります)。

セレンRCからスクリーンショットを取得できないことを除いて、これまでのところすべてがうまくいきました-base64_decode()の後はすべて空白(灰色)です。(それがなければ、彼らは開かない)。

os xプレビューでは灰色で表示されますが、Photoshopでまったく開かないため、実際には透明であるか、その他の破損があると確信しています。(そしてそれらの重さは0.7kです)しかし、unixの「file」コマンドはそれらを「PNG画像、1440 x 900、8ビット/カラーRGB、インターレースなし」として正しく認識します-1440 x 900は私のMacの解像度であり、接続されていますリモートデスクトップを介したWindowsシステム。

私は、サービスとしてではなく、selenium rcを直接実行しています(つまり、java -jar selenium-server.jar)。症状は、すべてのWindowsテストシステムで同じです。

私のSeleniumバージョンは1.0.1です。これは、スクリーンショットを取得しようとするスニペットです。

$ this-> selenium-> windowMaximize();
$ screenshot = $ this-> selenium-> captionScreenshotToString();

最新のTesting_Seleniumpearパッケージを使用しています。ここで同様の問題を扱っている質問があることに気付きましたが、私はサービスラッパーを使用しておらず、この複雑さを導入する余裕もありません(ただし、それが間違いだと思われる場合はお知らせください)

ありがとう&よろしく、アンドラス

ps:私はこれをいくつかのフォーラムにクロスポストして、いくつかの帰属を取得しようと必死になっています-それがあなたを動揺させた場合はお詫びします:-)

編集:セレンrcコンソールは言う

16:38:24.562情報-結果を取得しました:セッションa5304a287eb24402で[base64エンコードされたPNG] java.net.SocketException:ソフトウェアが原因で接続が異常終了しました:java.netのjava.net.SocketOutputStream.socketWrite0(ネイティブメソッド)でソケット書き込みエラーが発生しました。 SocketOutputStream.socketWrite(Unknown Source)at java.net.SocketOutputStream.write(Unknown Source)at org.mortbay.http.ChunkingOutputStream.bypassWrite(ChunkingOutputStrea m.java:151)at org.mortbay.http.BufferedOutputStream.write(BufferedOutputStream。 java:142)at org.mortbay.http.HttpOutputStream.write(HttpOutputStream.java:423)at org.mortbay.http.HttpOutputStream.write(HttpOutputStream.java:414)at org.openqa.selenium.server.SeleniumDriverResourceHandler.handleComman org.openqaのdRequest(SeleniumDriverResourceHandler.java:370)。selenium.server.SeleniumDriverResourceHandler.handle(Selen iumDriverResourceHandler.java:125)at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)のorg.mortbay.http.HttpConnection.service(HttpConnection.java:820)のorg.mortbay.http.HttpServer.service(HttpServer.java:909) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357 )org.mortbay.util.ThreadPool $ PoolThread.run(ThreadPool.java:534)で125)org.mortbay.http.HttpContext.handle(HttpContext.java:1530)at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)at org.mortbay.http.HttpServer.service(HttpServer.java :909)org.mortbay.http.HttpConnection.service(HttpConnection.java:820)at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)at org.mortbay.http.HttpConnection.handle(HttpConnection。 java:837)org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)at org.mortbay.util.ThreadPool $ PoolThread.run (ThreadPool.java:534)125)org.mortbay.http.HttpContext.handle(HttpContext.java:1530)at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)at org.mortbay.http.HttpServer.service(HttpServer.java :909)org.mortbay.http.HttpConnection.service(HttpConnection.java:820)at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)at org.mortbay.http.HttpConnection.handle(HttpConnection。 java:837)org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)at org.mortbay.util.ThreadPool $ PoolThread.run (ThreadPool.java:534)service(HttpServer.java:909)at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)at org.mortbay.http.HttpConnection .handle(HttpConnection.java:837)at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)atorg.mortbay.util。 ThreadPool $ PoolThread.run(ThreadPool.java:534)service(HttpServer.java:909)at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)at org.mortbay.http.HttpConnection .handle(HttpConnection.java:837)at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)atorg.mortbay.util。 ThreadPool $ PoolThread.run(ThreadPool.java:534)org.mortbay.util.ThreadPool $ PoolThread.run(ThreadPool.java:534)のutil.ThreadedServer.handle(ThreadedServer.java:357)org.mortbay.util.ThreadPool $ PoolThread.run(ThreadPool.java:534)のutil.ThreadedServer.handle(ThreadedServer.java:357)

すべての画面キャプチャ用。

4

1 に答える 1

6

物理デスクトップ (またはリモート デスクトップ セッション) がない場合、Selenium RC を実行する Java プロセスによって黒いスクリーンショットが表示されます。詳細情報を知らなくても、これが問題になる可能性があります。

Selenium RC の作成者として、実際には Windows サービスを完全に使用しないことをお勧めします。代わりに、無料の監視無料の負荷テストサービスを提供する BrowserMob で行っていることを行ってください。また、複数の場所からサイトのスクリーンショットを取得する最近リリースされたインスタント テスト ツールも提供しています。

私たちがしていることは、VNCセッションのコンテキストの下からすべてを起動することです。Windows では、起動時にセッションを起動するように VNC を構成します。次に、ユーザーが自動ログインすることを確認します。次に、Program Files->Startup に .bat ファイルを配置して、Selenium RC を起動します。ちょっと面倒ですが、スクリーンショット、IE の起動、ネイティブ イベントとのやり取りなどをサポートする環境で Selenium RC を確実に起動するために見つけた最も信頼できる方法です。

幸運を!

于 2009-11-16T17:32:19.973 に答える