在Capybara + Poltergeist中显示javascript回溯

时间:2016-06-27 17:13:16

标签: javascript ruby capybara poltergeist

我正在使用一个使用Capybara和Poltergeist的Ruby应用程序来做一些与Web相关的事情。

Capybara正在通过以下方式进行初始化:

Capybara.register_driver :poltergeist do |app|
    Capybara::Poltergeist::Driver.new(app, :js_errors => true, :debug => true)
end
default_driver = :poltergeist
Capybara.default_driver = default_driver
Capybara.javascript_driver = default_driver
Capybara.current_driver = default_driver
Capybara.default_max_wait_time = 30

我知道正在运行的javascript在某些时候失败,可能是因为拼写错误(但可能是因为其他原因),但我没有看到任何回溯当我运行应用程序(bundle exec rake myapp:console)时。我确实看到了调试输出,这几乎没用。

我也看到了一些console.log电话(我猜测我不会以某种方式看到失败,或者Ruby只是不知道如何打印那些)。

我的问题是:我怎样才能看到一些有用的输出来帮助我调试我的JS代码?

PS:请注意整个应用程序在Docker中运行,所以如果您打算建议我从Poltergeist切换,请记住这一点。

1 个答案:

答案 0 :(得分:1)

在运行相关页面代码之前,请执行

page.driver.enable_logging

如上所述here(虽然与webkit驱动程序有关),它也应该显示控制台错误。