如何使用Poltergeist / Capybara / Rspec记录javascript错误?

时间:2016-08-12 13:28:22

标签: ruby rspec phantomjs capybara poltergeist

我正在使用Rspec / Capybara和Poltergeist作为驱动程序来编写一些大型Web应用程序的测试。

我的问题是我想记录控制台上显示的消息,但到目前为止我一直无法这样做。

我知道选项js_errorsphantomjs_logger,但我遇到了一些问题:

  • 如果我设置js_errors: false,我在phantomjs_logger中指定的文件将保持为空;
  • 如果我设置js_errors: trueconsole.log消息会记录在phantomjs_logger中指定的文件中,但几乎所有规格都会因为 javascript错误甚至可能与我正在测试的导航示例无关。

如何在不破坏每个js错误的规格的情况下保存控制台消息的任何想法?

澄清: 我无法控制开发,我的任务是检查各种环境中整个应用程序堆栈的稳定性,从前端访问,因此清除所有的javascript错误是不可能的。我正在编写的规范也应该忽略javascript错误,如果它们不会影响界面的使用。

1 个答案:

答案 0 :(得分:5)

你做不到。 PhantomJS客户端捕获javascript错误消息并将它们添加到数组中。然后当命令完成时,如果js_errors == true,则检查该数组,如果不为空,则返回javascript错误并在测试中触发错误。 poltergeist中没有其他API可以访问这些错误。听起来你需要与你的经理讨论如果他们显然不会损害使用而忽视JS错误的智慧 - 这是一个潜在危险的开发实践