我有一个正在运行的Rails 5应用程序。我正在使用mdc组件进行样式设计。 我有一个调用新的mdc.mdcTextFeild(.....)
的javascript函数这在浏览器环境中工作得很好。但是,在使用带有captergeist驱动程序的capybara进行测试时,我能够看到我的application-XXXXXX.js存在于HTML内,但是,它抛出了找不到参考错误mdc!
我正在使用web-pack加载mdc组件。它正在正确编译并加载脚本。但是,在poltergeist内部的window对象没有定义mdc!
答案 0 :(得分:0)
Poltergeist使用PhantomJS作为其“浏览器”。 PhantomJS的最新发行版基本上等效于6-7年的浏览器,并且不支持很多现代JS / CSS。因此,任何现代JS需要进行转译和填充以与ES5兼容(无let
,const
,Array.from
,Array.of
等),否则您将拥有JS错误,阻止了许多页面行为的加载。
现在,将Capybara与Selenium和无头铬一起使用,而不是Poltergeist,对于现代应用程序的无头测试,您可能会变得更好。