Poltergeist:phantomjs_logger选项被忽略

时间:2018-09-12 15:22:41

标签: rspec phantomjs capybara poltergeist

在此设置中:

require 'capybara/poltergeist'
Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, {
    phantomjs_options: ['--ignore-ssl-errors=yes', '--ssl-protocol=any', '--load-images=no'], debug: false, timeout: 500, screen_size: [1600, 1200], js_errors: false,.
    logger: File.open( Rails.root.join("./log/test.poltergeist.log").to_s, "a" ),
    phantomjs_logger: File.open( Rails.root.join("./log/test.phantomjs_console.log").to_s, "a" )
  })
end

Phantomjs忽略了phantomjs_logger选项,并将应用程序输出到控制台的所有内容转储到STDOUT,因此在运行规范时会看到大量的垃圾。

我很幸运地尝试将phantomjs_logger设置为Logger.new(...),File.open(“ / dev / null”,...),nil,false和几乎可以想到的所有设置,它什么也没做。

理想情况下,无论管道中传递了什么消息,我都希望错误导致测试失败,以及其他.info .log。但是我也可以将所有内容都发送到日志文件中。

后来编辑:似乎无头铬也正在发生这种情况。它只是将console.log转储到stdout中:(

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

在浪费了几个小时之后,我设法通过打开$ stdout中的日志来使其工作。不知道为什么它不能按照文档工作,但是很好。

$stdout = File.open( Rails.root.join("./log/test.phantomjs_console.log").to_s )

require 'capybara/poltergeist'
Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, {
    phantomjs: "/usr/local/bin/phantomjs", # '>> ./log/test.phantomjs_console.log 2>&1'
    phantomjs_options: [ '--ignore-ssl-errors=yes', '--ssl-protocol=any', '--load-images=no', '--debug=false' ], debug: false, timeout: 500, window_size: [1600, 1200], js_errors: false,.
    logger: File.open( Rails.root.join("./log/test.poltergeist.log").to_s, "a" ),
    phantomjs_logger: $stdout
  })
end

以后的编辑:在此期间成功设置了chrome。 Poltergeist已过时。如果您遇到此问题,并尝试让Poltergeist工作,请停止并切换至Chrome。

相关问题