水豚Poltergeist不执行MDC Webpack application.js文件

时间:2018-06-19 20:38:34

标签: ruby-on-rails capybara poltergeist mdc-components

我有一个正在运行的Rails 5应用程序。我正在使用mdc组件进行样式设计。 我有一个调用新的mdc.mdcTextFeild(.....)

的javascript函数

这在浏览器环境中工作得很好。但是,在使用带有captergeist驱动程序的capybara进行测试时,我能够看到我的application-XXXXXX.js存在于HTML内,但是,它抛出了找不到参考错误mdc!

我正在使用web-pack加载mdc组件。它正在正确编译并加载脚本。但是,在poltergeist内部的window对象没有定义mdc!

1 个答案:

答案 0 :(得分:0)

Poltergeist使用PhantomJS作为其“浏览器”。 PhantomJS的最新发行版基本上等效于6-7年的浏览器,并且不支持很多现代JS / CSS。因此,任何现代JS需要进行转译和填充以与ES5兼容(无letconstArray.fromArray.of等),否则您将拥有JS错误,阻止了许多页面行为的加载。

现在,将Capybara与Selenium和无头铬一起使用,而不是Poltergeist,对于现代应用程序的无头测试,您可能会变得更好。