Firefox、Chrome、Internet Explorer、および Safari で動作する WebDriver を使用して、これらの試みのいずれかを拡張したり、JS エラーをキャッチするための他のアイデアを誰かが持っているかどうか疑問に思っています。
これまでに試みられたものは次のとおりです:
試み– 問題:
JSErrorCollector.jar - 正常に動作しますが、Firefox のみのソリューションです。
ページ ソースに JS を挿入する– window.onerror
WebDriver を使用してページのソース コードにコードを挿入しましたが、挿入が遅すぎるため、初期エラーはすべて見逃されています。
BrowserMobwindow.onerror
– HTTP 応答をインターセプトでき、応答本文にコードを挿入する予定でしたが、作成者はgetBody()
まだメソッドを実装していないため、変更できるのはヘッダーのみであることがわかっています。本文は、すべての応答に対して常に null です。(著者が実装について話している Web ページにいましたが、getBody()
まだ実装されておらず、再び見つけることができません)
Fiddler – JS は正しく挿入されますが、Fiddler は Windows 専用であるため、Safari は機能しません。
親/子ウィンドウ– JavaScript を使用して、テスト ページのウィンドウを開いて参照を保存します。はwindow.onerror code
親ウィンドウに含まれているため、子ウィンドウの起動エラーを見逃すことはありません。これを Firefox と Chome 以外で動作させることはできません。私はすでにここでそれについて質問しました.
Selenium RC – すべてのテストで WebDriver を使用しているため試していませんが、 のようなメソッドがあることは知っていcaptureNetworkTraffic()
ますが、WebDriver で使用できるとは思いません。
IE エラー ポップアップ– Firefox/Chrome の親子ソリューションを使用して、IE エラー ポップアップを探します。表示する設定にチェックを入れると、このポップアップが表示されます。ポップアップはネイティブのウィンドウ ウィンドウ (だと思います) であるため、セレンを使用してアクセスすることはできません。
ブラウザー コンソールを読む– すべてのブラウザーでこれを行う方法を見つけることができませんでした。Chrome では、コンソール ログをファイルに保存してからファイルを読み取る方法を見つけました。それは私が得た限りです。
BrowserMob はクロス ブラウザー ソリューションのように見えるため、BrowserMob に似たソリューションが必要です。テストに入れて応答を傍受できる他のプロキシはありますか? getBody()
この方法が実装されていれば最高でした。シンプルなクロスブラウザソリューションのように見えるので、親子ソリューションも気に入っていますが、IEでは機能しません(親子の質問が再びあります)。
助けてくれてありがとう。