我们正在使用WatiN来测试我们的门户网站。在E2E测试过程中,我们偶尔会在IE状态栏上看到客户端脚本错误。我想将一个处理程序链接到脚本错误事件上并记录错误以供以后分析和错误归档。
问题是,我不知道有一个全局脚本错误事件或如何链接到它。如果没有与浏览器无关的方法来实现这一点,我可以创建MyIE和MyFF子类,但这会成为两个特定于浏览器的问题。
从本质上讲,我正在考虑这样一个完全结束的电话:
browser.ScriptEngine.SetCustomErrorHandler(LogScriptingError);
...其中LogScriptErrors是我的代码,显而易见。
我们的许多客户端脚本错误并不一定会阻止测试继续(例如,一个漂亮的UI元素没有动画,但底层表单仍然可以提交),所以我想记录在大多数情况下,错误和进展。
答案 0 :(得分:1)
您可能正在寻找:
window.onerror=function(message, url, line){logError();};
您可以将此代码添加到页面中以处理logError()中的错误。但这可能不适用于所有浏览器(适用于IE),请检查此浏览器兼容性:
http://www.quirksmode.org/dom/events/error.html
或者你可以试试这个商业产品:
exceptionhub.com /
答案 1 :(得分:0)
您可以选择inject eval code(在“已添加的评估功能”中描述)的功能,以添加捕获所有错误的脚本,而不仅仅是来自eval的脚本的错误。我不确定这是否有用,但这是一个值得探索的领域。另一个资源可能是此blog post,它讨论了如何在WatiN中评估Javascript。