如何在Capybara + ChromeDriver中显示JS错误?

时间:2018-03-14 16:12:16

标签: javascript capybara selenium-chromedriver

我有一个使用RSpec + Capybara的集成测试设置。我们最近从PhantomJS切换到无头Chromedriver,我想念javascript错误不再显示了。

是否有一种方便的配置Chromedriver的方法,以便在capybara测试的日志输出中显示javascript错误?

访问我发现的javascript错误的方法(见下文)都有点麻烦或者不是我真正想要的。

  • 按照this answer
  • 中的说明设置显式日志输出路径
  • 按照gist
  • 中的说明通过驱动程序界面访问(减少类型)错误日志

2 个答案:

答案 0 :(得分:3)

使用

RSpec.configure do |config|
  config.after(type: :feature) do
    STDERR.puts page.driver.browser.manage.logs.get(:browser)
  end
end

可以在每个示例之后打印出日志,这是RSpec的功能规范。在其他测试框架中应该类似。然而,这并不会使示例失败。

答案 1 :(得分:1)

假设您的第二种方法是引用该要点中的注释而不是需要安装扩展的方法,那么就没有。 Selenium的功能/功能支持基于WebDriver规范 - https://w3c.github.io/webdriver/webdriver-spec.html - 它没有指定将JS错误报告回自动化客户端的任何内容。

注意 - Chrome日志有一些配置选项可能会改变详细程度并摆脱“减少”问题 - 请参阅Capture browser console logs with capybara