Firefox、Chrome、Internet Explorer、Safariで動作するWebDriverを使用してJSエラーをキャッチすることができますか?ここでSelenium WebDriverのJavaScriptエラーをキャッチ - ブラウザに依存しない
がこれまで試みられているものである:
試み - 問題:
JSErrorCollector.jarは - 正常に動作しますが、Firefoxの唯一のソリューションです。ページのソースに
を注入JS - 私はwebdriverをを使用して、ページのソースコードにwindow.onerror
コードを注入しますが、注入が遅すぎるので、任意の初期エラーが失われます。
BrowserMob - 私は、HTTPレスポンスを傍受することができ、応答体にwindow.onerror
コードを挿入するために計画されたが、著者はまだgetBody()
メソッドを実装していないので、ヘッダーだけが私が知っていること、変更することができます。本文は、すべての応答に対して常にnullです。フィドラー
(私は著者がgetBody()
の実装について話しましたが、それはまだ起きていないと私は再びそれを見つけることができないWebページ上にあった) - JSが正常に注入しますが、フィドラーは、Windowsは、Safariがないようにだけです作業。
親/子ウィンドウ - 私は、テストページのウィンドウへの参照を開いて保存するためにjavascriptを使用します。 window.onerror code
は親ウィンドウに含まれているので、子ウィンドウの起動エラーを見逃すことはありません。私はFirefoxとChome以外の何かでこれを動作させることはできません。私はすでにそれについての質問をhereにしました。
Selenium RCの - すべての私のテストはwebdriverをを使用するので、私はそれを試していないが、私はそれがcaptureNetworkTraffic()
のような方法のいくつかの種類を持って知っているが、私はそれがwebdriverをして使用することができないと思います。
IEエラーポップアップ - 私はFirefox/Chromeの親/子ソリューションを使用して、IEのエラーポップアップを探しました。このポップアップは、設定をチェックして表示すると表示されます。ポップアップはネイティブウィンドウウィンドウ(私は思う)だから私はそれにアクセスするためにセレンを使用することはできません。
ブラウザコンソールを読み取る - すべてのブラウザでこれを行う方法が見つかりませんでした。 Chromeでは、コンソールログをファイルに保存してからファイルを読み取る方法が見つかりました。それは私が得る限りです。
私はBrowserMobと似たソリューションを希望します。なぜなら、それはクロスブラウザソリューションのようだからです。テストに入れて応答を傍受できる他のプロキシはありますか? getBody()
メソッドが実装されていれば優れていたでしょう。私は親子ソリューションも好きですが、これは単純なクロスブラウザソリューションのようにも見えますが、IE(parent/child question again)では機能しません。
ありがとうございました。
私が知る限り、現在利用可能なすべての解決策がリストされています(2013年7月、Selenium 2.33.0)。 [詳細については、公式のSeleniumバグを参照してください。](http://code.google.com/p/selenium/issues/detail?id=148)公式のAPIがなくなるまでは、それらを組み合わせて使用する必要がありますあなたがサポートしなければならないすべてのブラウザ用に独自のブラウザアドオンを作成してください。 –
リンクありがとうございます。 – Ryan
あなたはBrowserMobプロキシが[オープンソース](https://github.com/lightbody/browsermob-proxy)であることを認識していますか?不足している機能を実装してプルリクエストを送信することからあなたを止めているのは何ですか? – JimEvans