Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用capybara和poltergeist检查Javascript错误?_Javascript_Ruby_Capybara_Phantomjs_Poltergeist - Fatal编程技术网

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

如何使用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:

我正试图弄清楚如何在我现有的水豚测试中准确地实现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

我在谷歌上搜索了一个类似的问题后,偶然发现了你的帖子。在我的案例中,我从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错误的警告<代码>预期响应“有错误”此外,链接已断开。