テストケースを作成して(Seleniumを使用しますが、この質問のポイントではありません)、特定の時点(メジャーライブラリの初期化後など)でWebアプリケーションにスクリプトエラー/警告または手渡しの例外がないことを検証します。
この情報は、ほとんどのブラウザのデバッグコンソールで簡単に確認できます。この情報をプログラムで取得するためにjavascriptステートメントを実行することは可能ですか?
ブラウザごとに異なっていても大丈夫です、私はそれに対処することができます。
テストケースを作成して(Seleniumを使用しますが、この質問のポイントではありません)、特定の時点(メジャーライブラリの初期化後など)でWebアプリケーションにスクリプトエラー/警告または手渡しの例外がないことを検証します。
この情報は、ほとんどのブラウザのデバッグコンソールで簡単に確認できます。この情報をプログラムで取得するためにjavascriptステートメントを実行することは可能ですか?
ブラウザごとに異なっていても大丈夫です、私はそれに対処することができます。
ここであなたの問題について(私があなたの問題を理解している限り)これまで読んでいません
アイデアは次のとおりです。 ただし、ページが最初に読み込まれたときにJavaScriptエラーが頻繁に発生することがわかったため(JSで作業していてエラーが発生したため)、アサーションを追加する簡単な方法を探していました。 JSエラーが発生したかどうかを確認するための私のテスト。いくつかのグーグルの後、私はこれをサポートするためにSeleniumに組み込まれているものは何もないという結論に達しましたが、それを達成するために使用できるハックがいくつかあります。ここではそのうちの1つについて説明します。記録のために、これはかなりハッキーだともう一度述べさせてください。より良い解決策を持っているかもしれない他の人から聞いてみたいです。window.onerrorイベントをインターセプトすることでJSエラーをキャッチするスクリプトをページに追加するだけです。
<script type="text/javascript">
window.onerror=function(msg){
$("body").attr("JSError",msg);
}
</script>
これにより、JavaScriptエラーが発生した場合に、JavaScriptエラーメッセージに対応する値を持つJSErrorという属性がドキュメントのbodyタグに追加されます。これを行うためにjQueryを使用しているため、jQueryの読み込みに失敗した場合、この特定の例は機能しないことに注意してください。次に、SeleniumテストではassertElementNotPresent
、ターゲットが。のコマンドを使用し//body[@JSError]
ます。これで、ページでJavaScriptエラーが発生した場合、テストは失敗し、最初にそれらに対処する必要があることがわかります。奇妙な理由で、特定のJavaScriptエラーをチェックしたい場合は、ターゲットが。のassertElementPresentコマンドを使用できます//body[@JSError='the error message']
。
この新鮮なアイデアがお役に立てば幸いです:)
try {
//code
} catch(exception) {
//send ajax request: exception.message, exception.stack, etc.
}