1

私は C# で Selenium WedDriver を使用しています。

Google Chrome でのテスト実行中に発生する可能性のあるすべての JS エラーをキャッチしてログに記録する方法はありますか?

Firefox の「JSErrorCollector」など - http://mguillem.wordpress.com/2011/10/11/webdriver-capture-js-errors-while-running-tests/

4

4 に答える 4

2

Simeon Sinichkin が述べたように、ChromeJSErrorCollector はここで非常に役立ちます。C# の他のユーザー向けに、JS エラーを取得してファイル/コンソールに記録するサンプル コードを次に示します。

var options = new ChromeOptions();
options.AddExtension("ChromeJSErrorCollector.crx");
var driver = new ChromeDriver(options);

// run tests...

var javascriptDriver = driver as IJavaScriptExecutor;
var errors = javascriptDriver.ExecuteScript("return window.JSErrorCollector_errors ? window.JSErrorCollector_errors.pump() : []");
var writer = new StreamWriter("jsErrors.log");
var collection = errors as ReadOnlyCollection<object>;
foreach (var item in collection)
{
    var errorObject = item as Dictionary<string, object>;
    foreach (var field in errorObject)
    {
        Console.WriteLine(field.Key + " - " + field.Value);
        writer.WriteLine(field.Key + " - " + field.Value);
    }

    Console.WriteLine("-------------------");
    writer.WriteLine("-------------------");
}
writer.Flush();
writer.Close();

出力は次のようになります。

errorMessage - Error: Script error
http://requirejs.org/docs/errors.html#scripterror
lineNumber - 1795
pageUrl - http://someURL
sourceName - http://someURL/Scripts/require.js
-------------------
于 2014-05-07T13:02:51.497 に答える
2

これで、Chrome 用の同じプラグインができました。ここにあります - https://github.com/dharrya/ChromeJSErrorCollector

JSErrorCollector と非常によく似ています。

于 2013-08-13T08:47:20.950 に答える
0

私は Selenium を使ったことがなく、コンテキストを完全に理解していない可能性があるため、ここではベースから外れている可能性がありwindow.onerrorます。ファイル、おそらく)。

これは JavaScript エラーに厳密に限定されているわけではなく、一部の HTTP エラーも含まれる可能性があることに注意してください。

于 2012-10-13T12:15:35.213 に答える
0

Chrome 開発者ツール (ctrl+shift+i) を使用し、コンソール タブでエラーを確認します。

Chrome では、コードの特定の行にブレークポイントを設定して、変数のすべての値を表示することもできます。

于 2012-10-13T13:36:35.257 に答える