Qt 水豚Webkit:js/React缺失&;Can';找不到变量:WeakMap

Qt 水豚Webkit:js/React缺失&;Can';找不到变量:WeakMap,qt,reactjs,capybara,capybara-webkit,qt5.5,Qt,Reactjs,Capybara,Capybara Webkit,Qt5.5,我在cucumber功能文件的步骤定义中使用了Capybara Webkit。此特定场景测试是否成功登录到系统。Capybara加载登录表单,完美地输入用户名和密码,但当它点击登录按钮时,它会挂起加载页面,并且永远不会正确登录 打印到控制台的错误有: ReferenceError:找不到变量:WeakMap 错误:缺少js/React | TypeError:undefined不是对象(正在评估'reagent.impl.util.memoize_1.call') TypeError:undef

我在cucumber功能文件的步骤定义中使用了Capybara Webkit。此特定场景测试是否成功登录到系统。Capybara加载登录表单,完美地输入用户名和密码,但当它点击登录按钮时,它会挂起加载页面,并且永远不会正确登录

打印到控制台的错误有:

  • ReferenceError:找不到变量:WeakMap

  • 错误:缺少js/React

  • | TypeError:undefined不是对象(正在评估'reagent.impl.util.memoize_1.call')
  • TypeError:undefined不是对象(正在评估“window[“deps”][“fine”])
  • 功能:无法安装格式化程序。不支持的Javascript上下文:Mozilla/5.0(Macintosh;英特尔Mac OS X)AppleWebKit/538.1(KHTML,如Gecko)capybara webkit Safari/538.1。
  • 错误:缺少js/ReactDOM
  • (typeof goog==“undefined\”)控制台。警告(\“ClojureScript无法加载:main,是否忘记指定:资产路径?\”);goog.require(\“myapp.app\”)
  • 相关信息:

    • 在/usr/local/ceral中使用Qt版本5.5.1/qt@5.5/5.5.1_1/lib

    • echo$PATH=>/usr/local/opt/qt@5.5/垃圾箱

    • 使用macOS Sierra 10.12.5

    • Xcode版本8.3.3

    从我从论坛上收集到的信息(这一个特别是:)来看,缺少对es6的QtWebKit:5.5.1支持可能是问题所在。我曾尝试安装一个较旧版本的qt(qt-everywhere-opensource-src-5.4.2),但我遇到了构建错误,即使它确实有效,使用一个更旧的版本也不是一个长期的解决方案

    在此问题上提供任何帮助都将不胜感激。
    感谢您

    水豚webkit最多支持ES5。您正在使用ES6功能(WeakMap等)。为了使用capybara webkit测试您的应用程序,您的应用程序需要使用babel等完全传输/聚合到ES5兼容性。恢复到较旧的Qt,只会使capybara webkit中的支持级别更差,因此这甚至不是短期解决方案。如果您不想使用Transfile/polyfil,另一个解决方案是从使用capybara webkit改为使用selenium和headless chrome(尽管这有一些东西目前不太管用-调整窗口大小,多个窗口)

    ah ok。谢谢你的澄清。然而,如果我将selenium与headless chrome结合使用,就没有办法测试Safari或Firefox headless chrome,对吗?@wwyliemod Firefox有一个headless模式(如果在某些平台上还不可用,很快就会出现),Safari没有,但如果使用水豚webkit,你就不会测试当前的Safari或Firefox。哦,我明白了。尝试了水豚硒与无头铬,它的工作非常完美。我想我们现在要坚持下去。谢谢你的帮助!