我有一个使用formBuilder的Rails应用。当我在浏览器中手动访问页面时,我使用formBuilder渲染我的表单,它工作得很好。但是通过Capybara spec& amp;恶作剧者,不会渲染formBuilder。
我有form-builder.min.js
和form-render.min.js
版本2.2.5。
Capybara 2.15.4
Poltergeist 1.9.0
答案 0 :(得分:1)
使用Poltergeist时JS未按预期执行的最可能的问题是,某些JS是由资产管道编译的错误,还是使用>编译到资产管道中的JS文件中的ES5功能。
PhantomJS(Poltergeist所依赖的)并不支持任何比ES5更大的东西,因此必须将所有JS编译并填充以在ES5"浏览器"上运行。由于Rails在测试模式下将JS文件连接在一起,因此在任何JS资产中错误或使用ES6功能都会导致PhantomJS停止处理包含的后续文件。如果你在你的Poltergeist配置中启用了js_errors,你可能会看到报告的错误,但是PhantomJS中有一个错误可能会默默地停止使用一些ES6功能(let,const等等 - https://github.com/teampoltergeist/poltergeist/issues/823)来处理JS,所以只是因为你没有看到报告的错误并不意味着JS中没有问题。