我在C#中使用Selenium WedDriver。
有没有办法捕获并记录我在Google Chrome中的测试运行中可能发生的所有JS错误?
例如用于Firefox - http://mguillem.wordpress.com/2011/10/11/webdriver-capture-js-errors-while-running-tests/ "JSErrorCollector“
发布于 2013-08-13 16:47:21
现在我们有了相同的Chrome插件。就在这里-- https://github.com/dharrya/ChromeJSErrorCollector
它与JSErrorCollector非常相似。
发布于 2014-05-07 21:02:51
正如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
-------------------发布于 2012-10-13 20:15:35
我在这里可能是错误的,因为我从未使用过Selenium,因此可能不能完全理解上下文:但是您可以使用window.onerror来捕获浏览器中发生的任何错误,然后对它们执行一些操作(也许可以将它们发送到数据库或日志文件)。
请注意,这不仅限于JavaScript错误,还可以包括一些HTTP错误。
https://stackoverflow.com/questions/12872322
复制相似问题