1

我正在尝试对网站中的一组元素进行 for 循环,并且 for 循环工作得很好,除了这个错误,我得到 MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 个错误侦听器。使用emitter.setMaxListeners() 增加限制。

我尝试添加事件模块并使用事件发射器.setMaxListeners() 方法,但我仍然收到此错误。我什至将它放在 for 循环中以保持领先于所有其他甚至听众。我已经控制台记录了我的最大听众数量,但不知道为什么我仍然得到这个。

for(let i = 1; i <= 20; i++) {

        //console.log(emmiter)
        browser
            .element('css selector', `mat-nav-list > a:nth-child(${i})`, 
function(result) {
                if(result.value && result.value.ELEMENT) {
                    browser.isVisible(`mat-nav-list > a:nth-child(${i})`, 
function(result) {
                        if(result.value === true) {

emmiter.setMaxListeners(emmiter.getMaxListeners() + 1)
                            console.log(emmiter);
                            browser.click(`mat-nav-list > a:nth-child(${i})`)
                            .pause(2000)
                        }
                    })
                }
            })
            //.pause(2000)

            //.pause(10000)

    }

当我遍历多个元素时,我希望它们能够毫无错误地循环。在这种情况下,我会在没有内存泄漏警告的情况下循环。目前,我在进入这个 for 循环时收到警告,它似乎发生在我的一个 if 语句中。

4

1 回答 1

0

它看起来像是最新版 Nightwatch 的新控制台输出功能。

我在 1.0.18 遇到了这个问题。

我最近回滚到 nightwatch 版本 0.9.21 并且我没有收到内存泄漏错误。我猜这在这个版本的守夜人中是新的,但看到这些错误很烦人。

于 2019-02-14T23:25:29.190 回答