我正试图通过使用幻影术来摆脱Poltergeist / PhantomJS。
配置驱动程序工作正常,但Chrome日志的输出除外。
这是我的驱动程序配置:
Capybara.register_driver :apparition do |app|
options = {
debug: false,
headless: true,
browser_logger: STDOUT,
timeout: 3,
ignore_https_errors: true,
screen_size: [1920, 1080],
skip_image_loading: false,
js_errors: false,
headers: {
"User-Agent" => "Apparition"
}
}
Capybara::Apparition::Driver.new(app, options)
end
我希望看到Chrome的控制台输出与Capybara的输出混合在一起,但是绝对没有产生任何东西。
我的语法不正确吗?
谢谢, 肖恩
答案 0 :(得分:0)
如果我这样做console.log("foo")
在JavaScript中,我们的Capybara + Apparition测试将在运行期间输出该结果。因此,是的,水豚+幻影通常具有这种行为。
尝试删除所有这些选项,然后看看您如何做。
这是console.log
输出内容的独立示例。将其另存为example.rb
,然后使用ruby example.rb
运行它。 (示例代码主要来自https://github.com/teamcapybara/capybara/issues/2256#issuecomment-542238546。)
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "capybara"
gem "puma"
gem "apparition"
end
require "capybara/apparition"
require "capybara/dsl"
html = DATA.read
app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }
Capybara.register_driver :apparition do |app|
Capybara::Apparition::Driver.new(app,
)
end
sess = Capybara::Session.new(:apparition, app)
sess.visit("/")
__END__
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello!</title>
<script>
console.log("hi");
</script>
</head>
<body>
<p>Hello world.</p>
</body>
</html>
即使我添加了您使用的所有选项,该示例仍将输出日志,因此可能还会发生其他情况。