首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用TestCafe实现window.onerror?

如何用TestCafe实现window.onerror?
EN

Stack Overflow用户
提问于 2019-08-06 00:07:10
回答 1查看 319关注 0票数 2

我需要在我的TestCafe测试中抑制一个错误(该错误来自一个模拟页面)。示例代码:

代码语言:javascript
复制
function stoperror() {
            try {
                this.clickMockContinueButton();
             } catch(e) {
                console.log(e)
             } 
            return true;
        }

Call it:

window.onerror = stoperror;

尽管我已经添加了节点窗口包:https://www.npmjs.com/package/window

错误= ReferenceError:未定义窗口

EN

回答 1

Stack Overflow用户

发布于 2019-08-06 21:08:32

TestCafe只提供了两种在浏览器中执行JavaScript代码的方法:ClientFunctiont.eval。例如,如果要通过window.onerror属性安装全局错误处理程序,则可以使用以下代码:

代码语言:javascript
复制
const installErrorHandler = ClientFunction(() => {
   window.onerror = error => {
       // handle error here
   };
});

test('Install the error handler', async t => {
    await installErrorHandler();
});

但我应该警告您,如果您警告要抑制另一个问题中描述的错误,则此方法将不起作用:TestCafe ClientFunction TypeError error as document is undefined

这个问题中的错误发生在ClientFunction上下文中,不能传播到全局错误处理程序。如果要禁止在ClientFunction实例中发生错误,请使用try ... catch语句将代码包装在其主体中:

代码语言:javascript
复制
const dangerousFunction = ClientFunction(() => {
    try {
        // dangerous code
    }
    catch (e) {
        // handle error
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57362305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档