Capybara-Webkit:js/React 丢失且无法找到变量:WeakMap
Capybara-Webkit: js/React is missing & Can't find variable: WeakMap
我在我的黄瓜功能文件的步骤定义中使用 Capybara-Webkit。此特定场景测试是否成功登录到系统。 Capybara 加载了登录表单,完美地输入了用户名和密码,但是当它点击登录按钮时,它被挂在加载页面上并且永远无法正确登录。
打印到控制台的错误是:
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/qt@5.5/5.5.1_1/lib
中使用Qt 5.5.1版本
echo $PATH => /usr/local/opt/qt@5.5/bin
使用 macOS Sierra 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 等 transpiled/polyfilled 完全兼容 ES5。恢复到较旧的 Qt,只会使 capybara-webkit 的支持级别更差,所以这不是甚至是短期解决方案。如果您不想 transpile/polyfil 另一种解决方案是从使用 capybara-webkit 更改为使用 selenium 和 headless chrome (尽管目前有一些东西也不起作用 - 调整大小 windows, 多个 windows)
我在我的黄瓜功能文件的步骤定义中使用 Capybara-Webkit。此特定场景测试是否成功登录到系统。 Capybara 加载了登录表单,完美地输入了用户名和密码,但是当它点击登录按钮时,它被挂在加载页面上并且永远无法正确登录。
打印到控制台的错误是:
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/qt@5.5/5.5.1_1/lib
中使用Qt 5.5.1版本
echo $PATH => /usr/local/opt/qt@5.5/bin
使用 macOS Sierra 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 等 transpiled/polyfilled 完全兼容 ES5。恢复到较旧的 Qt,只会使 capybara-webkit 的支持级别更差,所以这不是甚至是短期解决方案。如果您不想 transpile/polyfil 另一种解决方案是从使用 capybara-webkit 更改为使用 selenium 和 headless chrome (尽管目前有一些东西也不起作用 - 调整大小 windows, 多个 windows)