rspec - 将幻影与 Capybara 一起使用,browser_logger 不产生输出
问题描述
我试图通过使用幻影移离 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 的混合在一起,但绝对没有产生任何东西。
我的语法不正确吗?
谢谢,肖恩
解决方案
如果我console.log("foo")
使用 JavaScript,我们的 Capybara + Apparition 测试将在运行期间输出。所以,是的,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>
但是,即使我添加了您使用的所有选项,此示例仍会输出日志,因此可能会发生其他事情。
推荐阅读
- c# - 带有 MySql EntityFrameworkCore 的 blazor 返回输出参数获取错误
- python - 如何在 grep 等 python 中使用通配符搜索环境变量
- python - Python:使用 hasattr 提供验证和不变性的属性设置器
- c++11 - C++14 通用 lambda 捕获的 C++11 仿真与可变说明符之间的关系
- c# - 如何(如果可能)使用 Entity Framework Core fluent API 配置实体类型与另一个没有键字段的实体类型之间的关系
- c++ - 用字符串初始化我的类的对象
- node.js - 有什么方法可以自己使用 NodeJS 制作 GUI,而无需为其下载软件包?
- c# - 如何捕捉解码问题。System.FormatException:“Base-64 字符数组或字符串的长度无效。”
- javascript - Angular 9 - 错误类型错误:无法读取未定义的属性“名称”
- python - 遍历字典的 values()