我正在开发一个Ruby应用程序,它使用Capybara和Poltergeist来做一些与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切换过来,请记住这一点。
在运行相关页面代码之前,请执行
page.driver.enable_logging
正如这里所提到的(尽管与webkit驱动程序有关),它也应该显示控制台错误。