水豚-Webkit:js/React缺失&找不到变量:WeakMap
我在我的黄瓜特征文件的步骤定义中使用Capybara-Webkit。这个特定的场景测试了成功登录到系统。水豚加载登录表单,完美地输入用户名和密码,但是当它遇到登录按钮时,它会挂载在加载页面上,并且从未正确登录。水豚-Webkit:js/React缺失&找不到变量:WeakMap
打印到控制台的错误包括:
ReferenceError: Can't find variable: WeakMap
Error: js/React is missing
|TypeError: undefined is not an object (evaluating 'reagent.impl.util.memoize_1.call')
TypeError: undefined is not an object (evaluating 'window["deps"]["fine"]')
Feature :formatters cannot be installed. Unsupported Javascript context: Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) capybara-webkit Safari/538.1.
Error: js/ReactDOM is missing
(typeof goog == \"undefined\") console.warn(\"ClojureScript could not load :main, did you forget to specify :asset-path?\");goog.require(\"myapp.app\")
相关信息:
在/usr/local/Cellar/[email protected]/5.5.1_1使用Qt 5.5.1版/ lib
echo $ PATH =>/usr/local/opt/qt @ 5.5/bin中
使用MacOS的塞拉利昂10.12.5
版本的Xcode 8.3.3
从我从论坛上收集(这个具体是:https://github.com/thoughtbot/capybara-webkit/issues/849)缺乏QtWebKit的的:5.5.1对es6的支持可能是问题所在。我曾尝试安装旧版本的qt(qt-everywhere-opensource-src-5.4.2),但我遇到了构建错误,即使它的确使用了不是长期解决方案以使用更老的版本。
对此问题的任何帮助将不胜感激。 谢谢
capybara-webkit最多支持ES5。您正在使用ES6功能(WeakMap等)。为了使用capybara-webkit测试您的应用程序,您的应用程序需要使用babel等完全转译/填充到ES5兼容性。回到较旧的Qt,只会使capybara-webkit的支持级别变差,因此甚至不是短期解决方案。如果你不想要transpile/polyfil,另一个解决方案是从使用capybara-webkit到使用无头镀铬的硒(尽管目前有一些东西不能工作 - 调整窗口大小,多窗口)
啊,好的。感谢澄清。但是,如果我将硒用于无头镀铬,则无法无条件测试Safari或Firefox,对吗? – wwyliemod
@wwyliemod Firefox有一个无头模式(如果在某些平台上尚未提供,即将推出 - https://bugzilla.mozilla.org/show_bug.cgi?id=1338004),Safari不会 - 但您并未测试当前Safari或Firefox如果使用capybara-webkit。 –
哦,我明白了。试用无头镀铬水豚硒,它的工作完美。认为我们现在要坚持这一点。感谢您的帮助! – wwyliemod