如何使用capybara和poltergeist检查Javascript错误?
我正试图弄清楚如何在我现有的水豚测试中准确地实现Poltergeist的这一功能,在阅读了这里的文档后,我没有任何运气: 我已经包含了下面的代码,但是当我运行测试时,当我知道控制台中有JS错误时,我没有看到任何关于JS错误的警告。我错过什么了吗?我是否必须在终端中传递一个特定的命令,以确保检查JS错误?谢谢如何使用capybara和poltergeist检查Javascript错误?,javascript,ruby,capybara,phantomjs,poltergeist,Javascript,Ruby,Capybara,Phantomjs,Poltergeist,我正试图弄清楚如何在我现有的水豚测试中准确地实现Poltergeist的这一功能,在阅读了这里的文档后,我没有任何运气: 我已经包含了下面的代码,但是当我运行测试时,当我知道控制台中有JS错误时,我没有看到任何关于JS错误的警告。我错过什么了吗?我是否必须在终端中传递一个特定的命令,以确保检查JS错误?谢谢 require 'capybara/poltergeist' Capybara.javascript_driver = :poltergeist options = {js_errors:
require 'capybara/poltergeist'
Capybara.javascript_driver = :poltergeist
options = {js_errors: true}
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, options)
end
我在谷歌上搜索了一个类似的问题后,偶然发现了你的帖子。在我的案例中,我从webkit开始,在capybara担任驱动程序。我读过一篇博客文章,其中建议使用“have_errors”匹配器捕获任何js错误
it 'should not have JavaScript errors', js: true do
visit(root_path)
expect(page).to_not have_errors
end
如果您引用的是类似的内容,那么当您使用poltergeist时,不需要使用任何特定的方法来检查。您可以看到我的代码,它显示了我切换的内容
基本上,每个测试都会自动检查页面是否有错误。我只需要在测试中引入js:true。我已经通过故意出错js文件来验证这些测试来验证这一点
希望这会有帮助。为什么要将js_errors设置为false?啊,很抱歉,我从我在另一个SO线程上找到的源代码复制/粘贴了此内容。在我的代码中,我确实将其更改为true,但当我在Poltergeist中运行此命令时,仍然没有看到关于JS错误的警告<代码>预期响应“有错误”此外,链接已断开。