質問

selenium-rc と pear の Selenium PHP API を使用して、Web アプリ UI テスト用に仮想 (xen) win XP インスタンス、専用 Windows サーバー、および専用 Windows XP デスクトップ PC をセットアップしようとしています (php スクリプトが実行されています)テストは、リモート制御される Windows と同じローカル ネットワーク上のアプリ サーバー上に配置されます。

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

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

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

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

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

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

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

ps:私はこれをいくつかのフォーラムに投稿して、何らかの意見を得ようと必死に試みています - 気分を害した場合は申し訳ありません :-)

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

16:38:24.562 情報 - 得られた結果:Base64エンコードPNG]セッションA5304A287EB24402 8C8C843B294BF98F Java.net.SocketException:ソフトウェアにより接続が中止されました:java.net.SocketOutputStream.SocketWrite0(ネイティブメソッド)でのソケット書き込みエラーjava.net.SocketOutputStream.SocketWrite(未知のソース)java.net.SocketOutputStream.Write(未知のソース)org.mortbay.http.ChunkingOutStream.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. org.openqa.selenium.server.seleniumdriverresourcehandler.handlecomman drequest(seleniumdriverresourcehandler.java:370)にorg.openqa.selenium.server.seleniumdriverresourcehandlerに書く(httpoutputstream.java:414) AVA:125)at org .mortbay.http.httpcontext.handle(httpcontext.java:1530)at org.mortbay.httpcontext.handle(httpcontext.java:1482)at org.mort.http.http.httpser.service( mortbay.http.httpconnection.service(httpconnection.java:820)at org.mortbay.http.httpconnection.handlenext(httpconnection.java:986)at org.http.http.htpcnectnextinetion( )) atorg.mortbay.http.socketlistener.handleconnection(socketlistener.java:245)atorg.mortbay.util.threadedserver.handle(threadedserver.java:357)at org.mortbay.util.threadpool $ poolthread.run(threadpool.java:534)

すべてのスクリーン キャプチャに適用されます。

役に立ちましたか?

解決

物理デスクトップ (またはリモート デスクトップ セッション) がない場合、Selenium RC を実行する Java プロセスの結果は黒いスクリーンショットになります。詳しい情報が分からないと、これが問題になる可能性があります。

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

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

幸運を!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top