Capybara poltergeist 不执行 mdc webpack application.js 文件

Capybara poltergeist not executing the mdc webpack application.js file

我有一个 rails 5 运行 应用程序。我正在使用 mdc 组件进行样式设置。 我有一个 javascript 函数调用 new mdc.mdcTextFeild(.....)

这在浏览器环境中工作得很好。但是在使用水豚和 poltergeist 驱动程序进行测试时,我能够看到我的应用程序-XXXXXX.js 出现在 HTML 中,但是,它会抛出引用错误 mdc not found!

我正在使用 web-pack 加载 mdc components.It 正确编译并加载脚本。然而,恶作剧中的 window 对象没有定义 mdc!

Poltergeist 使用 PhantomJS 作为其 "browser"。最新发布的 PhantomJS 版本基本上相当于一个 6-7 岁的浏览器,不支持很多现代 JS/CSS。因此,任何现代 JS 都需要进行转译和 polyfill 以兼容 ES5(没有 letconstArray.fromArray.of 等),否则你将拥有 JS阻止大量页面行为加载的错误。

对于当今现代应用程序的任何无头测试,使用 Capybara 与 Selenium 和无头 chrome 而不是 Poltergeist 可能会更好。