如何使用capybara和poltergeist检查Javascript错误?

Chr*_*one 7 javascript ruby capybara phantomjs poltergeist

我正在试图弄清楚如何将Poltergeist的这个功能实现到我现有的Capybara测试中,并且在阅读这里的文档后我没有运气:https://github.com/teampoltergeist/poltergeist

我已经包含了下面的代码,但是当我运行我的测试时,当我知道控制台中存在JS错误时,我没有看到任何关于JS错误的警告.我错过了什么吗?我是否必须在终端中传入特定命令才能确保检查JS错误?谢谢!

require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist

options = {js_errors: true}
Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, options)
end
Run Code Online (Sandbox Code Playgroud)

Ana*_*and 2

我在谷歌上搜索了类似的问题后遇到了你的帖子。就我而言,我一开始使用 webkit 作为水豚的驱动程序。我读过一篇博客文章,建议使用以下代码,该代码使用“have_errors”匹配器来捕获任何 js 错误。

it 'should not have JavaScript errors', js: true do     
 visit(root_path)       
 expect(page).to_not have_errors        
end
Run Code Online (Sandbox Code Playgroud)

如果您提到类似的内容,则无需使用任何特定方法来检查您何时使用poltergeist。您可以看到我的代码,其中显示了我已切换的内容。

https://github.com/alaghu/learn_jquery/compare/dev...1d6be6dfd500

基本上,每次测试都会自动检查页面是否有错误。我只需要在测试中引入 js: true 。我已经通过故意错误的 js 文件来验证这些测试来验证这一点。

希望这有帮助。

  • 这在 Poltergeist 中不起作用。`预计#<Capybara::Session:0x007f8d4390e750> 响应'has_errors?'` ​​另外链接已损坏。 (6认同)