ruby-on-rails - Capybara poltergeist 不执行 mdc webpack application.js 文件
问题描述
我有一个运行 Rails 5 的应用程序。我正在使用 mdc 组件进行样式设置。我有一个调用 new mdc.mdcTextFeild(.....) 的 javascript 函数
这在浏览器环境中运行良好。但是在使用带有 poltergeist 驱动程序的 capybara 进行测试时,我能够看到我的 application-XXXXXX.js 存在于 HTML 中,但是,它会抛出 Reference error mdc not found!
我正在使用 web-pack 加载 mdc 组件。它正在正确编译并加载脚本。然而,在 poltergeist 中的 window 对象并没有定义 mdc!
解决方案
Poltergeist 使用 PhantomJS 作为它的“浏览器”。PhantomJS 的最新发布版本基本上相当于一个 6-7 岁的浏览器,并且不支持很多现代 JS/CSS。因此,任何现代 JS 都需要被转译和 polyfill 以与 ES5 兼容(不、、、、、等)let
,否则您将遇到 JS 错误,从而阻止大量页面行为加载。const
Array.from
Array.of
对于当今现代应用程序的任何无头测试,您可能会更好地使用 Capybara 和 Selenium 和无头 chrome,而不是 Poltergeist。
推荐阅读
- ssh - 使用用户输入远程执行本地 bash 脚本
- python - 将一堆 powerpoint 文件转换为 xml 格式的一堆 powerpoint 文件
- video - 如何通过循环图像生成视频,然后与另一个很长的视频连接而不使用 ffmpeg 重新编码?
- cassandra - Nodetool 修复 -pr -full 与 Nodetool 修复 -pr
- python - 根据从另一个集合中提取的值更新集合
- csv - 如何将 CSV 加载到在 Raspberry Pi2 上运行的 MariaDB 中的表中?
- openmodelica - OMNotebook 错误:在范围内找不到类开发(寻找函数或记录)
- python - 练习练习中的 python 文件在两个不同的实例中给出错误“TypeError:'int' object is not callable”
- apache-spark - Spark DataFrame GroupBy collect_list 并用 0 填充缺失的 valeus
- reactjs - React useState 钩子在 useEffect 钩子中没有按预期工作