【问题标题】:$_$wf is not defined wallaby.js and puppeteer interference$_$wf 未定义wallaby.js 和 puppeteer 干扰
【发布时间】:2019-01-01 23:48:11
【问题描述】:
我正在尝试使用 puppeteer 和 mocha 和 wallaby.js 运行端到端测试
在 VSCode Wallaby 中拒绝使用 page.evaluate 的测试并出现错误:
ReferenceError: $_$wf is not defined
Heres a link to the evaluate documentation
Wallaby 在实时运行同样使用 puppeteer 的其他测试时运行良好。
【问题讨论】:
标签:
javascript
puppeteer
wallaby.js
【解决方案1】:
wallaby.js 将您的代码注入全局变量以检查代码协变等。
这些可能看起来像$_$wp, $_$wpe, $_$w, $_$wf, $_$wv, $_$tracer。
通常这对用户是不可见的。
但是,当使用page.evaluate() 函数(或类似函数)时,您会将pageFunction(要在页面上下文中评估的函数)传递给无头浏览器中的页面。
在浏览器中,wallaby.js 刚刚注入代码的全局变量根本不存在,因此没有定义退出代码:$_$wf。
你仍然可以使用 wallaby.js 来运行你的其他测试,但对于使用评估的测试,你将不得不使用你的正常“npm 测试”(或者你将在终端中使用的东西来运行测试),在 wallaby 之外代码将清除这些全局变量,它们不应失败。