首页 > 解决方案 > 获取 context.config.failTestOn 错误 Log.exclude Keywords.forEach 不是量角器中的函数错误

问题描述

当我们从主菜单(鼠标悬停)单击子菜单时发生以下错误。

错误图像 帮助我如何解决这个问题。

if (browserLogs) {
    browserLogs.forEach(function (log) {
        var logLevel = context.config.failTestOnErrorLog.failTestOnErrorLogLevel ? context.config.failTestOnErrorLog.failTestOnErrorLogLevel : 900;
        var flag = false;
        if (log.level.value > logLevel) { // it's an error log
            if (context.config.failTestOnErrorLog.excludeKeywords) {
                context.config.failTestOnErrorLog.excludeKeywords.forEach(function (keyword) {
                    if (log.message.search(keyword) > -1) {
                        flag = true;
                    }
                });
            }
            expect(log.level.value > logLevel && flag).toEqualBecause(true, 'Error logs present in console:' + require('util').inspect(log));
        }
    })
}

标签: javascriptprotractor

解决方案


您可能知道forEach这是一个数组操作,但我经常看到错误地在对象上调用它的失败。您可以通过包含以下两行来检查它是否绝对是一个数组?

console.log(typeof context.config.failTestOnErrorLog.excludeKeywords);
console.log(Array.isArray(context.config.failTestOnErrorLog.excludeKeywords));

它确实是一个对象,您仍然可以使用本文中的信息对其进行循环。

希望有帮助,如果没有,请告诉我,我可以建议其他选择。多次看到这个错误。


推荐阅读