2016-11-28 8 views
0

私は、ユーザーがドキュメントを開く前にユーザーに警告があることを確認するテストを作成しています。ユーザーが依然として文書を開くことを希望すると、その文書は外部アプリケーション(pdfまたはword)で開きます。セレンテストで外部アプリケーションを処理する方法は?

しかし、私はブラウザウィンドウ上に外部アプリケーションを持っています。それは他のテストではうんざりです。

このような問題を回避するためのベストプラクティスは何ですか?テスト中の文書を開くことができないようにするアプリケーションの書き直し?

説明を追加: 問題は二重です。 1)これは、外部プロセスは、それがブラウザのウィンドウの上に位置しています(ここでは推測)ので、他のテストと干渉しているようだ)desctopを満たし、テストスレーブ 2のリソースを必要とプロセス(単語やアクロバット)を開始します。あなたはさらなるステップを続行することができない私はあなたのポストから理解何

+0

質問が不明です。詳しく教えてください。 –

+0

は私がネイティブにtaskkillコマンドを実行するだけで使用javasランタイムクラスと解決策を見つけました。外部プロセスをうまく起動する問題を解決します。推薦された方法であると確信していない。 Windows環境で私のために働く。 – Roland

答えて

0

は、ある文書(ワード/ PDF)は、したがって、ブラウザウィンドウで開いています。その場合は、タイトルを確認して、ドキュメントがブラウザウィンドウで開かれていることを確認し、下のスニペットを使用して戻ることができます。

driver.navigate().back(); 

これが役立ちます。私はライン

から理解何

0

「しかし、今、私は、ブラウザのウィンドウの上に外部アプリケーションを持っている、そしてそれは他のテストのために台無しに。」

は、ユーザーが[開く]ボタンをクリックすると新しいウィンドウでは、PDFやWordを記載しているので、(ウィンドウベースのアプリケーション)開くということです。

あなたは、現在アクティブなウィンドウを閉じますコードスニペットの下に、そのような場合には、ロボットのクラスを使用することができます。

 Robot rbt = new Robot(); 
     rbt.keyPress(KeyEvent.VK_ALT); 
     rbt.keyPress(KeyEvent.VK_F4); 
     rbt.keyRelease(KeyEvent.VK_ALT); 
     rbt.keyRelease(KeyEvent.VK_F4); 

が意図したウィンドウではなくAUTの閉じているように、あなたが適切に同期の問題に対処することを確認してください。

関連する問題